系统管理员定期从服务器下载备份到计算机的PowerShell脚本

说得有理,感谢提供脚本。让我分享一下 rsync 版本 :slight_smile: 。

在下面的示例中,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。就是这样。

3 个赞