SSH 経由でローカルサーバーとリモートサーバーのファイルの中身を比較する
ローカルサーバーのファイルとリモートサーバーのファイルとの間の差分をチェックする方法には様々な方法がありますが、ssh コマンドと diff コマンドを使って簡単にファイルの差分をチェックしてみます。まず最初にローカルサーバーとリモートサーバーの両方に以下のような README.txt ファイルを用意します。3行目だけが異なるようにしています。
[ローカルサーバー] $ cat README.txt 11111 22222 33333 44444 55555 [リモートサーバー] $ cat README.txt 11111 22222 99999 44444 55555
両方のサーバーにファイルを作成したら、SSH 経由でローカルサーバーからリモートサーバーの README.txt の中身を見れるか確認します。
$ ssh username@10.10.10.2 'cat /tmp/README.txt' username@10.10.10.2's password: 11111 22222 33333 44444 55555
ローカルサーバーのファイルとリモートサーバーのファイルとの間の差分は、次のようにしてチェックします。diff コマンドの比較対象を "-" を指定して、リモートサーバーのファイルの内容を比較対象にしているところがポイントです。
$ ssh username@10.10.10.2 'cat /tmp/README.txt' | diff -u - README.txt username@10.10.10.2's password: --- - 2017-11-01 23:32:46.489667911 +0900 +++ README.txt 2017-11-01 23:29:52.153271108 +0900 @@ -1,6 +1,6 @@ 11111 22222 -99999 +33333 44444 55555
このコマンドを使うことで、正しくローカルサーバーのファイルと、リモートサーバーのファイルを diff コマンドで比較できていることが分かります。