比较两个远程服务器之间的文件校验和
compare checksum of files between two remote servers
在我的本地盒子 "machineA"
上,我有两个文件夹 "/primary"
和 "/secondary"
。这两个文件夹里面有一些文件。现在在远程服务器 "machineB"
上,我有一个文件夹 "/bat/snap/"
,其中包含很多文件。
"/primary"
和 "/secondary"
文件夹中的所有文件 "machineA"
中的 "machineB"
远程服务器应该在这个目录 "/bat/snap/"
中。现在我需要将本地框 "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
我认为这与在 machineB 中处理的文件名中包含的 machineA 的多个路径有关...以下命令不是很好但对我有用,希望它有所帮助。
find /primary/ /secondary/ -type f | xargs md5sum | awk -F'/' '{print "echo " $NF " | ssh user@machineB \"(cd /bat/snap/ && md5sum -c)\""}' | bash
在我的本地盒子 "machineA"
上,我有两个文件夹 "/primary"
和 "/secondary"
。这两个文件夹里面有一些文件。现在在远程服务器 "machineB"
上,我有一个文件夹 "/bat/snap/"
,其中包含很多文件。
"/primary"
和 "/secondary"
文件夹中的所有文件 "machineA"
中的 "machineB"
远程服务器应该在这个目录 "/bat/snap/"
中。现在我需要将本地框 "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
我认为这与在 machineB 中处理的文件名中包含的 machineA 的多个路径有关...以下命令不是很好但对我有用,希望它有所帮助。
find /primary/ /secondary/ -type f | xargs md5sum | awk -F'/' '{print "echo " $NF " | ssh user@machineB \"(cd /bat/snap/ && md5sum -c)\""}' | bash