Легко архивируем 1С на холодное хранилище SELECTEL v2 в 2024 году
В прошлой версии не было выработано однозначно хорошего способа архивации на SELECTEL. Если не ограничивать хранилища, то они могли приводить к большим расходам, да и архивация через FTP показала себя не очень надежной, часто сбоила.
Поэтому проведу работу над ошибками и расскажу, как архивировать 1С на SELECTEL в 2024 году.
Надеюсь, эта статья снимет головную боль системных администраторов 1С мелких и средних предприятий, которые никак не могут найти, в каком облаке хранить архивы. Потому что по себе знаю, что сейчас в этой теме боль и страдания.
Почему холодное хранилище и почему SELECTEL?
Холодное хранилище очень дешево для операций хранения и загрузки в него данных. Вот извлечение данных при необходимости стоит дороже, но не существенно.
В целом можно рассчитывать, что в месяц оно будет обходиться в 50-100 рублей при объеме ежедневного бэкапа в 20-50Гб с поддержкой 10-дневных версий.
Но почему бы не взять тогда облако от обычного популярного провайдера?
Дело в том, что по непонятной причине российский облачные провайдеры препятствуют использованию своих продуктов для корпоративного сектора. Причем делают это не явно. Это узнаешь уже постфактум, типовые проблемы:
- Синхронизация делается только программами от провайдера. А они не работают как сервисы — если администратор не залогинился на сервере, архивация не работает.
- Для облака декларируется поддержка протокола WebDAV, которого можно было бы использовать для автоматической синхронизации. Но на практике этот протокол работает лишь формально — большие файлы не передает и скорость занижена до полной потери работоспособности (файл передается часами и в итоге соединение рвется).
- Корзина на облаке не очищается автоматически, но входит в учет занимаемого объема. Поэтому нужно писать и поддерживать скрипт очистки корзины.
- Ограничения на трафик, которые нельзя преодолеть даже за деньги. Например: «В течение месяца вы можете загрузить на свой Диск ограниченный объем файлов — не более двух объемов Диска по вашему тарифу».
Поэтому в конечном итоге выбор делается в сторону простого, прозрачного и надежного решения — холодного хранилища данных.
Почему SELECTEL? Я не знаю других холодных хранилищ в России. Есть хранилища непосредственно от Amazon, но туда очень сложный технический и организационный пороги входа, оплата в валюте. Да и рискованно сейчас хранить данные за границей.
В SELECTEL просто создаешь аккаунт и можно пользоваться! Тестового баланса в 2024 году уже не дают, но можно потратить минимум 100 рублей, этого хватит для тестирования хранения данных в течении минимум месяца.
Регистрация в SELECTEL и пополнение баланса
Для регистрации нужен e-mail и телефон. Регистрировать нужно на юридическое лицо, если услуги оплачиваются по безналу, или на физическое, если наличными. После регистрации на SELECTEL при входе запрашивается подтверждение по SMS, авторизация в браузере держится довольно долго.
Я обычно под каждого клиента завожу отдельный профиль в Chrome, чтобы не путаться и не переключаться.
Важно! Теперь нельзя пополнить баланс на тестовую сумму.
После входа создаем пополняем баланс на 100 рублей, обычно использую свои деньги, пополняю по QR, чтобы не дай бог не включилась подписка с карты, хотя не думаю, что там такое подключается. Привычка. Баланс пополняется обычно сразу после оплаты, иногда нужно нажать «Обновить» в браузере.
Настройки хранилища в SELECTEL
После этого заходим в раздел «Объектное хранилище».
Выбираем команду «Создать контейнер»:
Заполняем данные о контейнере:
Заходим в лимиты и устанавливаем лимит контейнера. Для 10 версия базы по 5 Гб в архиве достаточно 50 Гб, но я ставлю 100 Гб:
Важно! К сожалению, теперь версионирование нельзя настроить из личного кабинета, поэтому для упрощения настройки версионирование не используем.
Версионирование будем делать при архивации на сервер — для версий будем использовать папки с номерами дней (0-9) или аналогичные суффиксы файлов.
Добавление сервисного пользователя для архивации
Зайти в раздел: Аккаунт — Профиль и настройки — Управление пользователями — Сервисные пользователи
Добавляем пользователя robot с ролью «Администратор проекта» и выбираем наш единственный проект:
После этого нужно обновить страницу сервисных пользователей и можно увидеть созданного пользователя:
Выдаем по инструкции S3-ключ.
Для этого в списке щелкаем по гиперссылке пользователя robot, и в разделе «S3 ключи» нажимаем «Добавить ключ», выбираем robot и единственный наш проект:
Копируем себе access и secret ключи (ключи показываются только один раз):
Настройка Rclone для архивации на SELECTEL
Rclone пришло на смену морально устаревшему FTP. Использование этой программы описано в документации SELECTEL.
Скачиваем версию под Windows-64 с официального сайта:
Распаковываем в C:\rclone без вложенных папок:
Настройку делать по инструкции, начинаем с запуска rclone из командной строки:
c:\rclone\rclone config
Нюансы:
- Имя конфигурации использую backup.
- Ищите тип хранилища «Amazon S3 Compliant Storage Provider» и затем тип провайдера «
Any other S3 compatible provider
—other
» в списке, номера могут отличаться от тех, что в документации. - region — вводите ru-1
- endpoint — вводите s3.ru-1.storage.selcloud.ru
- Еще запрашивает, хотите ли вы настроить advanced настройки, ответьте n.
- Не забудьте подтвердить настройки командой y.
После настройки можно нажать q для выхода.
Далее нужно протестировать работу синхронизации, выполнив команду:
"C:\rclone\rclone.exe" copy "C:\rclone\rclone.exe" backup:backup
Здесь первое bakcup до двоеточия — имя конфигурации, второе — имя контейнера хранилища на сервере. После можно через \ указать папку в хранилище, если ее нет, она будет создана.
Если команда отработает успешно, зайти в личный кабинет, убедиться, что там находится файл rclone.exe и удалить его:
Использование Rclone для синхронизации данных в скриптах
Для архивации одного файла базы данных 1С в 10 версий использую скрипт:
chcp 1251 set "backup1=C:\Backup\ut11work" set "backuplast=C:\Backup\ut11work\forcloud" md "%backuplast%" rem === ARCHIVING === call :base "C:\1C\Bases\trade" "ut" exit :base set arcfile="%backup1%\1cv8_%~2_%date:~1,1%.zip" set arcfilelast="%backuplast%\1cv8.zip" set srcfile="%~1\1cv8.1CD" del %arcfile% "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -y %arcfile% %srcfile% "C:\rclone\rclone.exe" copy %arcfile% backup:backup rem pause rem copy %arcfile% %arcfilelast% /Y rem "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -v900m -y %arcfilelast% %srcfile% rem pause exit /b
Здесь rclone передает созданный архив. Процедура не быстрая, занимает около часа. Но работает довольно стабильно. При этом сеть плотно загружена, возможно в настройках rclone можно выставить, чтобы не так сильно загружала сеть:
Еще один вариант скрипта, который создает архивы для нескольких баз:
chcp 1251 rem Backup path set "backup1=F:\Archive" rem Second backup path set "backup2=D:\shared\Архив\Резерв 1C" rem Number of day 0-9 set arcnumber=%date:~1,1% rem === ARCHIVING PROCESS === call :base "F:\1C\1С Бухгалтерия 3" "buh3" call :base "F:\1C\1С Бухгалтерия 2" "buh2" call :base "F:\1C\1С Бухгалтерия 6" "buh6" call :base "F:\1C\УНФ" "unf" call :base "F:\1C\УНФ6" "unf6" rem === STORE TO CLOUD === call :store "unf" call :store "unf6" call :store "buh2" call :store "buh3" call :store "buh6" rem timeout 180 exit :base set "srcfile=%~1\1cv8.1CD" set "arcfile=%backup1%\1cv8_%arcnumber%.zip" set "arcfile2=%backup2%\1cv8_%arcnumber%.zip" rem Delete old backups del "%arcfile%" /Q rem pack files with 7-zip "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -y "%arcfile%" "%srcfile%" rem copy backup to second backup copy "%arcfile%" "%arcfile2%" /Y exit /b :store rem again build archive path set "arcfile=%backup1%\1cv8_%~1_%arcnumber%.zip" rem run rclone "C:\rclone\rclone.exe" copy %arcfile% backup:backup exit /b
В первую очередь создаются архивы, копируются на другой диск и потом уже не спеша закидываются в облако.
Архивы локально хранятся по номеру дня (0-9) и аналогично копируются на облако:
Если мало места, при необходимости можно переписать скрипт, чтобы локально хранилась только одна версия файла, а на сервер копировалась в папку под номером дня.
Скрипт архивации нужно прописать задачей в планировщик Windows:
Рекомендую при этом обратить внимание на следующие моменты:
- Устанавливайте галочку «Выполнять для всех пользователей», тогда задача отработает даже если администратор не совершил вход в систему.
- Устанавливайте галочку «Останавливать задачу выполняемую дольше» и указывайте время 6 часов. По умолчанию там стоит 3 дня. Если скрипт зависнет, то не будет работать 3 дня.
Можно подумать также о дифференциальных архивах, чтобы снизить траффик на архивацию.
Еще можно подумать о схеме извещений, если происходит ошибка архивации. Думаю, можно использовать curl для отправки сообщений в телеграмм по API. Это эффективнее чем email.
Проверки хранения файлов на SELECTEL
Можно для проверки скачать файлы из облака и сравнить их двоично с оригиналами (например с помощью Total commander). Совпадают:
Скачивать файлы можно через личный кабинет из браузера.
Архивация файлов пользователей на SELECTEL
Туда же можно архивировать и рабочие файлы пользователей (Word, Excel), если нет необходимости в их предварительном шифровании. Я обычно создаю внутри хранилища папку data и аналогичным образом синхронизирую каталоги данных с хранилищем. Нужно правильно указать ключи архивации Rclone, чтобы происходила синхронизация (т.е. старые файлы удалялись).
Расходы и баланс
В разделе «Объектное хранилище — Потребление» можно получить аналитику по трафику, количеству запросов и расходам на хранилище:
1 комментарий
[…] UPD: Статья устарела, есть более актуальная версия статьи для 2024 года. […]