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



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

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

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

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

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

md5sum: /primary/abc_monthly_134_proc_7.data: No such file or directory
/primary/abc_monthly_134_proc_7.data: FAILED open or read

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

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

相关内容

最新更新