我正在使用 rsync 使用以下命令将主目录中的一些文件夹备份到远程服务器:
cd
rsync -Favz --inplace --delete --delete-excluded folder1 folder2 folder3 remote-server:/remote/path/
所有文件都归我的用户所有,无论是本地还是远程。
除了模式为 r--r--r-- 的文件外,它工作正常,即使我的用户是这些文件和父目录的所有者。
这是 rsync 为这些文件报告的内容:
rsync: open "/remote/path/somefolder/somefile" failed: Permission denied (13)
...
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
作为临时解决方案,我可以登录远程计算机(同一用户),删除文件并重新运行 rsync,然后它将在这些模式下创建这些文件,但是下次运行脚本时它将再次失败。
有没有办法让 rsync 覆盖远程端的不可写文件(或删除它们并再次创建它们),或者我必须首先远程删除它们然后运行备份脚本?
这个问题与如何备份0000权限的/etc/{,g}shadow文件?除了后者谈论的是非可读的文件,我的问题是关于可读但不可写的文件。
答案1
这是选项的副作用--inplace
。这更适用于磁盘到磁盘的同步,而不是通过网络进行同步。其他副作用,例如在传输中断时使文件处于不一致的状态也可能是有问题的。尝试不进行同步,--inplace
因为 rsync 增量传输算法已经非常高效。