Ada*_*tan 31 files filesystems rsync
比较目录结构的最佳方法是什么?
我有一个使用rsync的备份实用程序。我想说明源和备份之间的确切差异(在文件大小和上次更改日期方面)。
就像是:
Local file Remote file Compare
/home/udi/1.txt (date)(size) /home/udi/1.txt (date)(size) EQUAL
/home/udi/2.txt (date)(size) /home/udi/2.txt (date)(size) DIFFERENT
Run Code Online (Sandbox Code Playgroud)
当然,该工具可以是现成的,也可以是python脚本的想法。
非常感谢!
乌迪
Cam*_*tin 13
有些人出于不同的原因想要比较文件系统,所以我会在这里写下我想要什么以及我是如何做到的。
第一个快照(before.sh
脚本):
find / -xdev | sort > fs-before.txt
Run Code Online (Sandbox Code Playgroud)
第二个快照(after.sh
脚本):
find / -xdev | sort > fs-after.txt
Run Code Online (Sandbox Code Playgroud)
比较它们(diff.sh
脚本):
diff -daU 0 fs-before.txt fs-after.txt | grep -vE '^(@@|\+\+\+|---)'
Run Code Online (Sandbox Code Playgroud)
好的部分是它使用了几乎默认的系统二进制文件。可以通过传递find
一个-exec
回显文件路径的参数和之后的 MD5来根据内容进行比较。
如果您不想安装其他工具...
for host in host1 host2
do
ssh $host '
cd /dir &&
find . |
while
read line
do
ls -l "$line"
done ' | sort > /tmp/temp.$host.$$
done
diff /tmp/temp.*.$$ | less
echo "don't forget to clean up the temp files!"
Run Code Online (Sandbox Code Playgroud)
是的,它可以用 find 和 exec 或 find 和 xargs 完成,就像在 for 循环中 find 一样容易。而且,您还可以优化 diff 的输出,因此它会显示诸如“此文件在 host1 上但不在 host2 上”之类的内容,但此时您最好安装其他人都在谈论的工具...
归档时间: |
|
查看次数: |
43462 次 |
最近记录: |