Вводные
Rclone - умеющая синхронизировать файлы с различными внешними сервисами, список можно посмотреть на главной https://rclone.org/
Для меня из удобств
1. работает на nix и win без дополнительных усилий
2. варианты подключения к сервисам
3. умение шифровать на лету
Рассматриваю варианты использования исходя из собственного опыта
1. Копирование сформированного файла бекапа на внешние сервисы, организация ротации
2. Копирование папки с файлами (общей папки пользователей) с вынесением разности в отдельную структуру.
Настройка
Перед использованием скрипта нужно сформировать настройки подключения к внешним сервисам, это подробно описано например https://selectel.ru/blog/rclone-rsync-dlya-oblakov/.
Конфиг хранится в виде текстового файла в профиле пользователя от которого запускается утилита.
Шифрование настраивается поверх настроенного подключения, более подробно описано в https://rclone.org/crypt/ и вместо подключения "selectel_site_archive" можно использовать "selectel_site_archive_crypt"
Копирование сформированного файла бекапа на внешние сервисы
Скрипт копирования на внешние ресурсы:
# Создаем папку
rclone mkdir selectel_site_archive:back_up_sites/sitename_ru/daily
# Копируем бекап на Я-диск, используется для разворачивания тестов
rclone copy -v /home/bitrix/backup/archive/daily yandex_disk:sitename_ru
# Удаляем старые версии, нужна только от текущего числа
rclone delete yandex_disk:sitename_ru --min-age 1d
# Перемещаем копию в основное хранилище
rclone move -v /home/bitrix/backup/archive/daily selectel_site_archive:back_up_sites/sitename_ru/daily
# Удаляем старые копии старше недели
rclone delete selectel_site_archive:back_up_sites/sitename_ru/daily --min-age 7d
По аналогии можно добавить декадные, ежемесячные и.т.д.
Копирование папки с файлами с вынесением разности в отдельную структуру.
Полный бекап файлового хранилища достаточно затратно и не всегда удобно из него восстанавливаться. Вариант решения:
REM @ECHO OFF
SET CURRENT_DAY="%date:~-4,4%_%date:~-7,2%_%date:~-10,2%_%time:~-11,2%-%time:~-8,2%-%time:~-5,2%"
SET CURRENT_DAY=%CURRENT_DAY:"=%
C:\rclone\rclone.exe sync \\storage.localnet.ru\public\ E:\public\ --backup-dir E:\public_backup\%CURRENT_DAY%
Запускаю раз в час, получаю свежий бекап общей папки и разность в отдельной структуре с подписанным временем. В моем понимании минимальная защита от шифровальщиков есть.
Благодарю за внимание.