对比目录文件异同

使用diff

一个简单比较两个目录文件(同一台主机)异同的方法是使用diff命令:

diff -rq DIR1 DIR2

这样能够看出文件的差异。

使用rsync

rsync -avnc --delete $SOURCE/ $TARGET
  • -c 使用checksum来比较文件内容;可以使用ac或者rc-r表示递归)

  • -n 最重要的参数:不修改任何内容

  • -v 列出文件

  • --delete 对称检查,而不是单向差异

  • 最后/表示检查目录内,和目标对比目录内的内容

远程对比两个服务器上指定目录

如果要对比服务器A和服务器B上的指定目录,可以结合ssh来实现:

  • 使用diff命令

diff <(ssh server1 'sudo ls -1aR /var/www/vhosts/domain.com') <(ssh server2 'sudo ls -1aR /var/www/vhosts/domain.com')
  • 使用rsync

rsync --dry-run -rvce "ssh -p port#" user@server1:/var/www/vhosts/ /var/www/vhosts/domain.com/
         --dry-run 表示显示哪些文件被传输
        -r 表示递归
        -v 表示verbose详细模式
        -c 表示使用checksum进行文件校验,而不是只比较文件大小和时间戳
        -e 表示command行参数,也就是"ssh -p port#"

参考

Last updated