比较两个远程服务器之间的文件校验和

时间:2018-04-20 20:27:16

标签: linux bash shell unix checksum

在我的本地方框"machineA"上,我有两个文件夹"/primary""/secondary"。这两个文件夹中包含一些文件。现在在远程服务器"machineB"上,我有一个包含大量文件的文件夹"/bat/snap/"

"/primary""/secondary""machineA"个文件夹中的所有文件都应该位于此目录"machineB"的{​​{1}}远程服务器中。现在,我需要将本地框"/bat/snap/"上的"/primary""/secondary"文件夹中的所有文件的校验和与此目录"machineA"中的远程服务器进行比较。如果校验和中存在任何不匹配,那么我想报告"/bat/snap/"中存在问题的所有文件。

我写了一个我在"machineA"上运行的命令,但它给了我一个错误:

machineA

下面是我得到的错误,之后我停止了上面的命令。我检查了两个服务器,我可以看到这个文件存在,那么错误呢?

find /primary/ /secondary/ -type f | xargs md5sum | ssh machineB '(cd /bat/snap/ && md5sum -c)' | egrep -v 'OK$'

1 个答案:

答案 0 :(得分:1)

我认为它与机器B中处理的文件名中包含的机器A的多个路径有关...以下命令并不漂亮但对我有用,希望它有所帮助。

find /primary/ /secondary/ -type f | xargs md5sum | awk -F'/' '{print "echo "$1 $NF " | ssh user@machineB \"(cd /bat/snap/  && md5sum -c)\""}' | bash