我的目标是:给出本地服务器上的文件列表,显示远程服务器上具有相同绝对path的文件的任何差异; 例如比较本地/etc/init.d/apache到远程服务器上的同一个文件。
对我来说“差异”意味着不同的校验和。 我不在乎文件修改时间。 我也不想同步文件(还); 只显示差异。
我有本地和远程服务器上的rsync 3.0.6,应该能够做我想要的。 然而,声称本地和远程文件,即使是相同的校验和,仍然是不同的。
这是命令行:
$ rsync –dry-run -avi –checksum –files-from = / home / me / test.txt –rsync-path =“cd /&rsync”/ me @ remote:/
哪里:
在两台服务器上的/etc/init.d/apache上运行cksum会得到相同的结果。 这些文件是一样的。
但是, rsync输出是:
me@remote's password: building file list ... done .d..t...... etc/ cd+++++++++ etc/init.d/ <f+++++++++ etc/init.d/apache sent 93 bytes received 21 bytes 20.73 bytes/sec total size is 2374 speedup is 20.82 (DRY RUN)
输出代码(请参阅http://www.samba.org/ftp/rsync/rsync.html )意味着rsync认为
我不明白怎么用–checksum选项和具有相同校验和的文件,rsync应该认为它们是不同的。 (我已经尝试了与其他文件具有相同的时间,这些文件不标记为不同。)
我确实在/运行了这个,并确保(AFAIK)它在/远程运行,所以即使相对path名仍然是正确的。
我用-avvvi运行rsync来获取更多的debugging信息,但是没有看到任何显着的结果。
我在想:
既然“-a”相当于“-rlptgoD”,那么是的,它仍然在看mod时间(“-t”)。
尝试用“-rlpgoD”replace“-a”,看看这是怎么回事。
这可能是一个权限问题。 “我@远程”是否有权限读取远程服务器上的/etc/init.d/apache?
您可能需要在远程rsync或本地rsync或两者上使用–fake-super选项。
该目录具有不同的创build/修改/访问时间,所有者或权限…不要使用-a选项,只尝试-r
祝你好运