除了已知的差异外,我有两台服务器应该具有相同的设置。
通过运行:
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt
Run Code Online (Sandbox Code Playgroud)
我可以找到一台服务器上所有文件的列表,并将其与另一台服务器上的文件列表进行比较。这将显示驻留在服务器上的文件名称的差异。
我真正想做的是对两台服务器上的所有文件运行校验和,并比较它们以找出内容不同的地方。例如
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum
Run Code Online (Sandbox Code Playgroud)
这是一种明智的方法吗?我在想 rysnc 已经拥有大部分功能,但它可以用来提供差异列表吗?
我正在寻找一个脚本来找出本地和远程文件系统(通过 SSH)之间的差异。理想情况下,脚本应该执行以下操作:
-浏览本地文件系统中的文件夹
-找出远程文件系统上是否存在文件夹(如果丢失则报告并停止进一步检查该文件夹)
-对于两个文件系统都存在的文件夹,进行比较它们包含的文件(报告远程文件是否丢失或不同)。
我在 serverfault 上唯一能找到的就是关于如何对单个文件和文件夹进行差异的示例:
如何比较目录之间的差异 (linux)
如何通过 ssh 进行差异?
该脚本可以用任何语言编写,此时无关紧要(尽管首选 bash/perl)。