我正在寻找一个脚本来找出本地和远程文件系统(通过SSH)之间的差异。 理想情况下,脚本应该做到以下几点:
– 浏览本地文件系统的文件夹
– 找出远程文件系统上是否存在文件夹 (报告是否丢失,并停止检查文件夹)
– 对于两个文件系统的文件夹,执行它们包含的文件的差异 (报告远程文件是否丢失或不同)。
我能在serverfault上find的唯一例子就是如何在单个文件和文件夹上进行区分:
如何比较目录(Linux)
如何通过SSH的差异?
脚本可以用任何语言编写,在这一点上并不重要(尽pipebash / perl是首选)。
带有--dry-run和-v参数的rsync会报告这些文件和目录,无论它们是否存在于远端,还可以检测文件差异(通过校验和)。 网上有很多关于如何通过SSH运行的文档。
如果您更喜欢不同的方法,可以使用FUSE / SSHfs在本地安装远程目录,并使用任何可在本地使用的工具。
一个可怕的简单的解决scheme,几乎所有你想要的,但不会停止下降到目标不存在的文件夹将使用rsync与校验和validation做一个--dry-run :
rsync -av -c --dry-run source/ user@target:/target/