web-dev-qa-db-ja.com

SSH経由のローカルファイルシステムとリモートファイルシステムの違いを見つけるためのスクリプト

ローカルファイルシステムとリモートファイルシステム(SSH経由)の違いを見つけるためのスクリプトを探しています。理想的には、スクリプトは次のことを行う必要があります。
-フォルダのローカルファイルシステムを参照します
-フォルダがリモートファイルシステムに存在するかどうかを確認します(欠落している場合は報告し、フォルダの詳細な検査を停止します)
-両方のファイルシステムに存在するフォルダーの場合、それらに含まれるファイルの差分を実行します(リモートファイルが欠落しているかどうかを報告します)。

Serverfaultで見つけた唯一のことは、個々のファイルとフォルダーで差分を実行する方法に関する例でした。
ディレクトリ間の違いを比較する方法(Linux)
sshとの差分はどうですか?

スクリプトは任意の言語で記述できますが、現時点では問題ではありません(ただし、bash/Perlが推奨されます)。

3
Max

rsync--dry-runおよび-vパラメータは、ファイルとディレクトリがリモート側に存在するかどうかを報告し、ファイルの違いも検出します(チェックサムによって)。 SSH経由で実行する方法 に関するドキュメントはネット上にたくさんあります。

別のアプローチが必要な場合は、 Fuse/SSHfs を使用してリモートディレクトリをローカルにマウントし、ローカルで機能するツールのセットを使用できます。

5
the-wabbit

必要なほとんどすべてを実行するが、ターゲット上に存在しないフォルダーへの下降を停止しない、ひどい単純な解決策の1つは、チェックサム検証で--dry-runを実行してrsyncを使用することです。

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