让我们假设我在host1
中有文件列表find /path/to -name "*.jpg" -print
我想通过SSH连接到host2,并检查此列表中的所有文件是否都存在于远程主机上。
请帮忙,我该怎么做?
谢谢
答案 0 :(得分:0)
打印host2
上不存在的文件:
$ find /path/to -name "*.jpg" -print | ssh host2 "perl -lne'print unless -e'"
答案 1 :(得分:0)
未经测试。
find /path/to -name "*.jpg" -print >base.txt
ssh user@host2 "find /path/to -name '*.jpg'" > check.txt
diff <(sort base.txt) <(sort check.txt)
答案 2 :(得分:0)
我会将rsync与ssh结合使用。
rsync -avn -e ssh ./ username@remoteHost.net:~/files/
这将执行干运行并列出本地计算机上的所有文件,但不列出远程计算机上的文件。它还会列出远程计算机上可能已更改的文件。
答案 3 :(得分:0)
请先测试
file_list=`find /path/to -name "*.jpg" -print`
for local_file in `echo $file_list`; do
ssh host2 "[ ! -f $local_file ] && echo \"file \$local_file not exist...\""
done