在我的本地盒子"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