我执行了从远程到本地的 rsync。现在我想更新已更改或较新的文件。如何使用 rsync 实现此目的?
rsync -avz --progress -u -e ssh ServerName:FolderPath/FolderName LocalFolderName
它持续下载所有文件。
答案1
查看开关--update
。来自man rsync
:
-u, --update skip files that are newer on the receiver
编辑: -a
暗示-rlptgoD
,我没有考虑到这一点。正如我在评论中所说:给我们命令输出。这将显示文件是否实际被传输或只是检查更改然后被忽略。
答案2
我的做法略有不同,先创建一个 TAR 文件,包含我想在主机上备份的所有文件,然后使用 rsync 将该文件拉到备份控制器。
rsync -e ssh -av --verbose --progress --log-file=rsync.log user@host:/home/user/backups/all_backup_files.tar /cygdrive/f/_host_backups >> F:\_host_backups\log.txt
Rsync 仅复制源文件中已更改的部分。即使 TAR 文件可能非常大,如果该文件中只有一个小文件发生更改,那么这就是 rsync 传输的全部内容,备份过程几乎不需要任何时间。
答案3
我所做的就是
rsync -avz [email protected]:/remote/path /local/path
我每晚都运行它(但远程和本地交换)来运行异地备份,它传输的只是与 20 多 GB 的备份目录的差异。
我还在我的命令中加入了'--delete'来从远程删除我已经从本地删除的文件,但我在这里将其从示例中删除,以避免混淆(以及在阅读之前复制粘贴的人造成的数据丢失)