ローカルファイルシステムとリモートファイルシステム(SSH経由)の違いを見つけるためのスクリプトを探しています。理想的には、スクリプトは次のことを行う必要があります。
-フォルダのローカルファイルシステムを参照します
-フォルダがリモートファイルシステムに存在するかどうかを確認します(欠落している場合は報告し、フォルダの詳細な検査を停止します)
-両方のファイルシステムに存在するフォルダーの場合、それらに含まれるファイルの差分を実行します(リモートファイルが欠落しているかどうかを報告します)。
Serverfaultで見つけた唯一のことは、個々のファイルとフォルダーで差分を実行する方法に関する例でした。
ディレクトリ間の違いを比較する方法(Linux)
sshとの差分はどうですか?
スクリプトは任意の言語で記述できますが、現時点では問題ではありません(ただし、bash/Perlが推奨されます)。
rsync
と--dry-run
および-v
パラメータは、ファイルとディレクトリがリモート側に存在するかどうかを報告し、ファイルの違いも検出します(チェックサムによって)。 SSH経由で実行する方法 に関するドキュメントはネット上にたくさんあります。
別のアプローチが必要な場合は、 Fuse/SSHfs を使用してリモートディレクトリをローカルにマウントし、ローカルで機能するツールのセットを使用できます。
必要なほとんどすべてを実行するが、ターゲット上に存在しないフォルダーへの下降を停止しない、ひどい単純な解決策の1つは、チェックサム検証で--dry-run
を実行してrsync
を使用することです。
rsync -av -c --dry-run source/ user@target:/target/