Резервное копирование данных в S3-хранилище на Windows Server
Зачастую требуется где-то разместить резервные копии данных и желательно, чтобы Хранилище было доступным по сети, имело ограниченный безопасный доступ и желательно имело структуру кластера, т.е. должно быть отказоустойчивым. S3 - хранилище имеет неоспоримые плюсы перед хранением бэкапом по ftp, и главный плюс отказоустойчивая структура S3-хранилища.
Инструкция по установке
-
Установка и настройка на сервере-источнике утилиты rclone.
-
Создание и настройка скрипта переноса файлов резервного копирования в облачное хранилище S3 с логированием выполненных заданий.
-
Настройка запуска скрипта в Планировщике заданий Windows
Установка и настрока утилиты rclone
Установка для Windows
Предварительно скомпилированный двоичный файл.
Чтобы установить rclone в операционной системе Windows, скачиваем бесплатную утилиту rclone для Windows и распаковываем ее.
Получите правильный двоичный файл для вашего типа процессора, нажав на эти ссылки. Если не уверены, используйте первую ссылку.
- Откройте этот файл в проводнике и извлеките rclone.exe.
Rclone — это портативный исполняемый файл, поэтому вы можете разместить его в любом удобном месте.
Откройте окно CMD (или powershell) и запустите двоичный файл.
Обратите внимание, что rclone не запускает GUI (графический интерфейс) по умолчанию, он работает в окне командной строки CMD.
- Запустите
rclone.exe config
для настройки. Подробнее см. в документации по конфигурации rclone .
При желании можно настроить автоматическое выполнение .
Если вы планируете использовать функцию монтирования rclone , вам также потребуется установить стороннюю утилиту WinFsp .
Менеджер пакетов Windows (Winget)
Winget поставляется с предустановленными последними версиями Windows. Если нет, обновите пакет App Installer из магазина Microsoft.
Чтобы установить rclone
Чтобы удалить rclone
Конфигурация rclone для Windows
Например мы распокавали утилиту в директорию rclone
запустим PowerShell или CMD
Конфигурируем rclone в PowerShell
В командной строке запустим конфигурацию:
Далее производим настройку как в мануле:
Скрипт переноса бэкапа в S3-хранилище
Рассмострим пример, в котором бэкапы создаются для баз 1С в PostgreSQL методом описанным в данной инструкции:
Исходные данные
В данном примере рабочее дерево каталогов будет таким:
ДиректорияBAC
ДиректорияBackup
- backup.files // файлы бэкапов для переноса
ДиректорияLogback
- files_data.log //файлы логов
- run_backup.cmd //скрипт бэкапа
- rclone-to-net.cmd // создадим файл скрипта для переноса бэкапов
Разбор скрипта
Создаем батник или cmd файл в любимом Вашем текстовом редакторе или блокноте, я писал Notepad++, красиво, удобно с подсветкой.
- Установим переменные окружения:
- сформируем имя файла отчета с присвоением даты создания;
- укажем куда укладывать лог-файлы;
- укажем где находится утилита rclone;
- Укажем директорию источника файлов для переноса;
- Укажем место назначения, сконофигурированное ранее в
rclone config
название нашего хранилища, в нашем случае это s3-adman
- Запустим утилиту
rclone
на копирование с логированием из источника в место назначения. - Проверим, успешно ли выполнен перенос:
- В случае ошибки - сделаем запись в лог и выйдем из скрипта
- В случае успеха - сделаем запись в лог и удалим в каталоге источнике все файлы старше 2 дней (можно настроить на свое усмотрение)
- Закончим скрипт.
Автоматизация запуска скрипта по времени
Ставим задачу в планировщик задач.
Запускаем планировщик:
Пуск – Панель Управления – Администрирование – Планировщик заданий.
Создаем задачу -> Задаем ей имя в планировщике
и устанавливаем триггеры (расписание начала задачи). Например ставим еженедельно задачу в рабочие дни ночью на пару часов позже задачи на бэкап.
Далее указываем Действие: Создать -> программу сценарий: (находим нашу программу) rclone-to-net.cmd жмем Ок.
Всё, наш Скрипт создан и установлен в планировщик Windows.
Осталось проверить его работоспособность:
Проверка работоспособности скрипта
Прямо в планировщике задач выбираем нашу задачу и вызвав правой кнопкой мыши контекстное меню, выбираем “Запустить” – далее смотрим результат. Радуемся жизни или анализируем причины записи ошибок в лог.
После того, как скрипт отработал, можно подключиться к S3-хранилищу, например S3-браузером или любым другим инструментом и проверить, перенесены ли необходимые файлы в хранилище.
Проверка логирования
Так же можем проверить лог успешного выполнения задачи и смоделировать ошибку чтобы проверить то, что и ошибка успешно логируется.
Для этого достаточно в скрипте указать неправильное название места назначения, в нашем примере изменить s3-adman
на что-то другое.
Проверка удаления старых файлов
После успешной передачи в хранилище, можно проверить удаление старых файлов . Для данной задачи можно перед запуском скрипта разместить в рабочей директории файлы с датой создания раньше установленного нами в скрипте предела:
Запустить скрипт и после его успешной отработки, проверить удаление данных файлов.