如何让rsync遇到无效符号链接时不终止备份?
解决rsync遇到无效符号链接终止备份的问题
我来帮你搞定这个rsync备份中断的问题——之前我也碰到过类似情况,像pulseaudio这类程序生成的无效软链接,确实会让rsync默认直接报错退出,导致备份没完成不说,连--delete-after这类后续操作也没法执行。下面给你具体的解决方案:
核心参数说明
要让rsync遇到无效软链接时继续执行并记录日志,关键靠这两个参数:
--ignore-errors:这个参数会让rsync忽略大部分非致命错误(包括无效软链接的报错),不会中途退出,能完整走完备份和--delete-after的流程--log-file=/path/to/your-log-file.log:指定日志文件路径,所有操作细节(包括遇到的无效软链接信息)都会被记录下来,方便后续排查
如果不想把无效软链接复制到目标机器,还可以额外加上--safe-links,它会跳过那些指向备份目录外部的链接(无效链接本身也会被跳过),不过结合--ignore-errors已经能满足“不终止、留日志”的核心需求。
完整备份命令示例
假设你要从计算机1的/home目录备份到计算机2(IP为192.168.1.100)的/backup/home目录,完整命令如下:
rsync -av --delete-after --ignore-errors --log-file=/var/log/rsync-home-backup.log /home/ user@192.168.1.100:/backup/home/
参数细节解释
-a:归档模式,会保留文件的权限、所有者、时间戳等所有属性,是备份时的常用参数-v:verbose模式,输出详细操作信息(这些内容也会同步写入日志文件)--delete-after:在完成所有文件复制后,再删除目标目录中源目录已不存在的文件,避免中途删除导致备份不完整--ignore-errors:核心参数,确保rsync遇到无效软链接这类错误时不中断,继续执行后续操作--log-file:把所有操作日志(包括跳过的无效软链接记录)保存到指定文件,你可以后续查看这个日志来清理源机器上的无效链接
这样设置后,rsync就不会因为无效软链接终止备份了,所有问题都会被记录到日志里,备份流程能完整执行完毕。
内容的提问来源于stack exchange,提问作者CrabMan
相关产品推荐
相关产品推荐

