用于通过 SSH 找出本地和远程文件系统之间的差异的脚本

用于通过 SSH 找出本地和远程文件系统之间的差异的脚本

我正在寻找一个脚本来找出本地和远程文件系统之间的差异(通过 SSH)。理想情况下,该脚本应该执行以下操作:
-浏览本地文件系统中的文件夹
-查明远程文件系统上是否存在文件夹(如发现丢失请报告并停止进一步检查文件夹)
-对于两个文件系统中存在的文件夹,对它们所包含的文件进行差异分析(报告远程文件是否丢失或不同)。

我在 serverfault 上唯一能找到的是如何对单个文件和文件夹进行差异分析的示例:
如何比较目录之间的差异(linux)
如何通过 ssh 进行 diff?

该脚本可以用任何语言编写,目前这并不重要(尽管最好使用 bash/perl)。

答案1

rsync使用--dry-run-v参数将报告文件和目录,无论它们是否存在于远程端,还可以检测文件中的差异(通过校验和)。网上有很多关于如何通过 SSH 运行它

如果你喜欢不同的方法,你可以使用以下方法在本地挂载远程目录FUSE/SSHfs并使用任何可以在本地工作的工具集。

答案2

一个糟糕的简单解决方案是使用rsync校验和验证来做几乎你想要的一切,但不会停止进入目标上不存在的文件夹--dry-run

rsync -av -c --dry-run source/ user@target:/target/  

相关内容