Хорошая идея, спасибо за скрипт. Делюсь версией rsync
.
В примере ниже SQL и вложения синхронизируются отдельно. Нет необходимости включать вложения в файл резервной копии. Также не нужно удалять старые резервные копии.
Я использую Chocolatey для установки cwrsync. После установки нужно лишь добавить несколько строк в конец cmd-файла и создать расписание:
C:\ProgramData\chocolatey\lib\rsync\tools\cwrsync.cmd
Например:
rsync -rvm --delete --ignore-errors --ignore-existing --size-only --chmod=ugo=rwX -e "ssh -i /cygdrive/c/Users/user1/.ssh/id_rsa" login@host:/var/discourse/shared/standalone/backups/default/ /cygdrive/d/backup/forum/db/
rsync -rvm --delete --ignore-errors --ignore-existing --size-only --chmod=ugo=rwX -e "ssh -i /cygdrive/c/Users/user1/.ssh/id_rsa" login@host:/var/discourse/shared/standalone/uploads/ /cygdrive/d/backup/forum/uploads/
Примечание 1: Используйте /cygdrive/c/ вместо C:, обратитесь к cmd-файлу для справки по синтаксису.
Примечание 2: Вы можете изменить команду для использования пароля вместо SSH-ключа (формат PEM).
Примечание 3: Если вы не добавите слэш после папки dump/, rsync скопирует саму папку; если добавите — скопирует только содержимое папки.
Примечание 4: Если Chocolatey обновит cwrsync, он создаст резервную копию предыдущего cmd-файла в той же папке. Вам нужно вручную перенести ваши команды в новый cmd-файл, чтобы продолжить резервное копирование.
Важно: Установите то же правило в Планировщике, как написал автор оригинального поста (OP). Строка для Планировщика выглядит так:
C:\ProgramData\chocolatey\lib\rsync\tools\cwrsync.cmd >> d:\backup\cwrsync.txt 2>&1
Это добавит вывод в файл cwrsync.txt. Вот и всё.