Легко архивируем 1С на холодное хранилище SELECTEL v2 в 2024 году

В прошлой версии не было выработано однозначно хорошего способа архивации на SELECTEL. Если не ограничивать хранилища, то они могли приводить к большим расходам, да и архивация через FTP показала себя не очень надежной, часто сбоила.

Поэтому проведу работу над ошибками и расскажу, как архивировать 1С на SELECTEL в 2024 году.

Надеюсь, эта статья снимет головную боль системных администраторов 1С мелких и средних предприятий, которые никак не могут найти, в каком облаке хранить архивы. Потому что по себе знаю, что сейчас в этой теме боль и страдания.

d890c1e4f3e2dc67ba4b8a8073d4cd95.png

Почему холодное хранилище и почему SELECTEL?

Холодное хранилище очень дешево для операций хранения и загрузки в него данных. Вот извлечение данных при необходимости стоит дороже, но не существенно.

В целом можно рассчитывать, что в месяц оно будет обходиться в 50–100 рублей при объеме ежедневного бэкапа в 20–50Гб с поддержкой 10-дневных версий.

Но почему бы не взять тогда облако от обычного популярного провайдера?

Дело в том, что по непонятной причине российский облачные провайдеры препятствуют использованию своих продуктов для корпоративного сектора. Причем делают это не явно. Это узнаешь уже постфактум, типовые проблемы:

  1. Синхронизация делается только программами от провайдера. А они не работают как сервисы — если администратор не залогинился на сервере, архивация не работает.

  2. Для облака декларируется поддержка протокола WebDAV, которого можно было бы использовать для автоматической синхронизации. Но на практике этот протокол работает лишь формально — большие файлы не передает и скорость занижена до полной потери работоспособности (файл передается часами и в итоге соединение рвется).

  3. Корзина на облаке не очищается автоматически, но входит в учет занимаемого объема. Поэтому нужно писать и поддерживать скрипт очистки корзины.

  4. Ограничения на трафик, которые нельзя преодолеть даже за деньги. Например: «В течение месяца вы можете загрузить на свой Диск ограниченный объем файлов — не более двух объемов Диска по вашему тарифу».

Поэтому в конечном итоге выбор делается в сторону простого, прозрачного и надежного решения — холодного хранилища данных.

Почему SELECTEL? Я не знаю других холодных хранилищ в России. Есть хранилища непосредственно от Amazon, но туда очень сложный технический и организационный пороги входа, оплата в валюте. Да и рискованно сейчас хранить данные за границей.

В SELECTEL просто создаешь аккаунт и можно пользоваться! Тестового баланса в 2024 году уже не дают, но можно потратить минимум 100 рублей, этого хватит для тестирования хранения данных в течении минимум месяца.

Регистрация в SELECTEL и пополнение баланса

Для регистрации нужен e-mail и телефон. Регистрировать нужно на юридическое лицо, если услуги оплачиваются по безналу, или на физическое, если наличными. После регистрации на SELECTEL при входе запрашивается подтверждение по SMS, авторизация в браузере держится довольно долго.

Я обычно под каждого клиента завожу отдельный профиль в Chrome, чтобы не путаться и не переключаться.

Важно! Теперь нельзя пополнить баланс на тестовую сумму.

После входа создаем пополняем баланс на 100 рублей, обычно использую свои деньги, пополняю по QR, чтобы не дай бог не включилась подписка с карты, хотя не думаю, что там такое подключается. Привычка. Баланс пополняется обычно сразу после оплаты, иногда нужно нажать «Обновить» в браузере.

Настройки хранилища в SELECTEL

После этого заходим в раздел «Объектное хранилище».

Выбираем команду «Создать контейнер»:

50edb9ca9559012b32f330b02bb9be76.png

Заполняем данные о контейнере:

a7abacca51b188cd89cb51d0dbe26180.png

Заходим в лимиты и устанавливаем лимит контейнера. Для 10 версия базы по 5 Гб в архиве достаточно 50 Гб, но я ставлю 100 Гб:

7d04f98133c1e3ed17f1698a0729863b.png

Важно! К сожалению, теперь версионирование нельзя настроить из личного кабинета, поэтому для упрощения настройки версионирование не используем.

Версионирование будем делать при архивации на сервер — для версий будем использовать папки с номерами дней (0–9) или аналогичные суффиксы файлов.

Добавление сервисного пользователя для архивации

Зайти в раздел:  Аккаунт — Профиль и настройки — Управление пользователями — Сервисные пользователи

Добавляем пользователя robot с ролью «Администратор проекта» и выбираем наш единственный проект:

53462f34b2ec38c618bd255150c14fd5.png

После этого нужно обновить страницу сервисных пользователей и можно увидеть созданного пользователя:

d19ec2a7a674467d5500bb13a6376eef.png

Выдаем по инструкции S3-ключ.

Для этого в списке щелкаем по гиперссылке пользователя robot, и в разделе «S3 ключи» нажимаем «Добавить ключ», выбираем robot и единственный наш проект:

efd09f77a9b1d94dc50ed016a8e5bfbc.png

Копируем себе access и secret ключи (ключи показываются только один раз):

ca181e54ad7138462ea2fa842ace6269.png

Настройка Rclone для архивации на SELECTEL

Rclone пришло на смену морально устаревшему FTP. Использование этой программы описано в документации SELECTEL.

Скачиваем версию под Windows-64 с официального сайта:

99ebc77212bb75cb9802fb41f046f678.png

Распаковываем в C:\rclone без вложенных папок:

6100b215a0ef3076bd9c3433735bb20d.pngb8cbdb03cf78bab951323ebd045fc3d1.png

Настройку делать по инструкции, начинаем с запуска rclone из командной строки:

c:\rclone\rclone config

c38fb6282c138798a0478d223a77a2c9.png

Нюансы:

  1. Имя конфигурации использую backup.

  2. Ищите тип хранилища »Amazon S3 Compliant Storage Provider» и затем тип провайдера »Any other S3 compatible provider — other» в списке, номера могут отличаться от тех, что в документации.

  3. region — вводите ru-1

  4. endpoint — вводите s3.ru-1.storage.selcloud.ru

  5. Еще запрашивает, хотите ли вы настроить advanced настройки, ответьте n.

  6. Не забудьте подтвердить настройки командой y.

0a9633b9acf592e9b58414fe5262ff17.png

После настройки можно нажать q для выхода.

Далее нужно протестировать работу синхронизации, выполнив команду:

"C:\rclone\rclone.exe" copy "C:\rclone\rclone.exe" backup:backup  

Здесь первое bakcup до двоеточия — имя конфигурации, второе — имя контейнера хранилища на сервере. После можно через \ указать папку в хранилище, если ее нет, она будет создана.

Если команда отработает успешно, зайти в личный кабинет, убедиться, что там находится файл rclone.exe и удалить его:

95b6df4a2076cc18b9ab66b81dc0d65a.png

Использование 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 можно выставить, чтобы не так сильно загружала сеть:

a198de92e79efb8d121f605ec9c89acc.png

Еще один вариант скрипта, который создает архивы для нескольких баз:

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) и аналогично копируются на облако:

5cee6848dce151a33442bc14249926d1.png

Если мало места, при необходимости можно переписать скрипт, чтобы локально хранилась только одна версия файла, а на сервер копировалась в папку под номером дня.

Скрипт архивации нужно прописать задачей в планировщик Windows:

d9a80a32ab0852c75ea1e6deaca0dbdb.png

Рекомендую при этом обратить внимание на следующие моменты:

  1. Устанавливайте галочку «Выполнять для всех пользователей», тогда задача отработает даже если администратор не совершил вход в систему.

  2. Устанавливайте галочку «Останавливать задачу выполняемую дольше» и указывайте время 6 часов. По умолчанию там стоит 3 дня. Если скрипт зависнет, то не будет работать 3 дня.

Можно подумать также о дифференциальных архивах, чтобы снизить траффик на архивацию.

Еще можно подумать о схеме извещений, если происходит ошибка архивации. Думаю, можно использовать curl для отправки сообщений в телеграмм по API. Это эффективнее чем email.

Проверки хранения файлов на SELECTEL

Можно для проверки скачать файлы из облака и сравнить их двоично с оригиналами (например с помощью Total commander). Совпадают:

83c0394ff2c24a5702c0ca481366e22e.png

Скачивать файлы можно через личный кабинет из браузера.

Архивация файлов пользователей на SELECTEL

Туда же можно архивировать и рабочие файлы пользователей (Word, Excel), если нет необходимости в их предварительном шифровании. Я обычно создаю внутри хранилища папку data и аналогичным образом синхронизирую каталоги данных с хранилищем. Нужно правильно указать ключи архивации Rclone, чтобы происходила синхронизация (т.е. старые файлы удалялись).

Расходы и баланс

В разделе «Объектное хранилище — Потребление» можно получить аналитику по трафику, количеству запросов и расходам на хранилище:

29695164a8f19f9067c7d473aaf69cd1.png

© Habrahabr.ru