什么可以用来检测远程文件与本地文件的不同?
可能使用 ssh 作为通信渠道。用 bash 编写脚本,考虑到 Linux 服务器。
这可以基于文件内容(md5sum),但我想(从修改时间)推断哪个文件较新......
我正在尝试检测服务器上的某些配置文件与版本控制下的副本相比是否已被编辑,并合并更改。
答案1
可以处理本地和远程(通过 ssh)主机的一个解决方案是rsync
:
rsync -av -n -c src/ dst/
该-n
标志表示rsync
实际上不进行任何传输 - 因此输出将只是它想要传输或更改的文件。-c
确保 rsync 进行 MD5 比较。如果您只想根据大小和上次修改时间进行匹配,只需省略-c
。
另一种方法是将两个目录都签入git
存储库。这需要非常熟悉,git
但可以通过在单独的分支中维护每个主机的文件来实现。然后可以git fetch
(省略隐含的合并git pull
)并git diff
在分支之间使用来检查更改。这个问题在这样的设置中可能会有用。