我正在使用 rsync 进行备份。这是我的命令行:
sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST
在大多数情况下,这种方法都行得通。但是,今天,我遇到了一种情况,我只是更改了文件的属性,使其可执行。出于好奇,我运行了 rsync,但它没有显示该文件已被复制到目标。
文件内容完全相同,这是统计输出:
文件:'Projects/simpleFlash.py' 大小:706 块:8 IO 块:4096 常规文件 设备:802h/2050d Inode:56961 链接:1 访问:(0755 / -rwxr-xr-x)Uid:(1000 / pi)Gid:(1000 / pi) 访问时间:2015-03-26 17:13:29.970428613 -0400 修改:2015-02-17 00:16:44.558033934 -0500 更改:2015-05-19 13:53:28.401164123 -0400 出生日期:-
mtime 相同,但 ctime 不同。对于具有相同 mtime 的文件,如何让 rsync 查看文件属性更改?
眼镜: rsync 3.0.9 文件系统:ext4 Linux内核:3.18.11+
答案1
如手册页所述rsync(1)
:
Rsync 使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间已更改的文件。当快速检查表明文件的数据不需要更新时,将直接在目标文件上对其他保留属性(根据选项的要求)进行任何更改。
这意味着只要您告诉rsync
传输属性,它们就会被更新。您说缺少的属性是权限,因此在命令行中添加-p
或--perms
就可以了。