说得有理,感谢提供脚本。让我分享一下 rsync 版本
。
在下面的示例中,sql 和 attachments 是分开同步的。没有必要将 attachments 包含在备份文件中。也没有必要删除旧的备份。
我使用 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。就是这样。