回答:
diffのmanページから:
from-fileとto-fileの両方がディレクトリの場合、diffは両方のディレクトリの対応するファイルをアルファベット順に比較します。-rまたは--recursiveオプションが指定されていない限り、この比較は再帰的ではありません。diffは、ディレクトリの実際の内容をファイルであるかのように比較することはありません。完全に指定されたファイルは標準入力ではない場合があります。これは、標準入力には名前がなく、「同じ名前のファイル」という概念が適用されないためです。
ディレクトリを比較するには: diff --brief -r dir1 dir2
ファイルを並べて比較するには: diff --side-by-side file1 file2
sshfs
NFSを使用する代わりに、アドホック一時ネットワークディレクトリを作成するために使用できます。
想定:
www1
、リモートと比較してwww2
www1
からリモートへの公開鍵認証がありますwww2
www1
とリモートの同じユーザーとして比較しますwww2
find / var / www / html / -name "*" -exec md5sum -b {} \; | grep -v "/ var / www / html / exclude_this dir"> local.md5 ssh www2 "find / var / www / html / -name '*' -exec md5sum -b {} \; | grep -v / var / www / html / exclude_this dir> remote.md5" scp www2:remote.md5 diff local.md5 remote.md5
rsync
帯域幅の消費を削減するための機能と、diff
柔軟で十分なdiffを提供するための機能を組み合わせたいのです。
このようなもの:
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
最初の行ではrsync
なく頻繁に使用している場合は、これを少し調整できると思いますcp
-明らかに最後の行では、diff
好きなようにフォーマットするフルパワーを持っています。おそらくOPの場合はyで
このアプローチのマイナス面は、ローカルスペースを2倍使用することになりますが、気にする人は1ギガドル未満ですか?
cp --reflink=auto --sparse=always
基礎となるFSに応じて、コピーにスペースを使用しない。
行いdiff old_dir new_dir > diff.txt
、同じサーバー上の辺の違いによって側のために。
リモートファイルの場合:
たとえば、ABCは既存のサーバー、XYZはリモートサーバー、ディレクトリ名は123です。
ステップ1:ABCサーバー上の既存のディレクトリ123の名前を123_ABCに変更します。
ABC:/Home > mv 123 123_ABC
ステップ2:サーバーABCに新しいディレクトリを作成します。
ABC: > mkdir 123_XYZ
ステップ3:すべてのファイルをXYZサーバーのディレクトリ123からABCサーバーの123_XYZディレクトリにコピーします。
XYZ/123 > scp * userid@ABC: /123_XYZ
これにより、すべてのファイルがXYZサーバー上のディレクトリからABC server / 123_XYZディレクトリにコピーされます。
ステップ4:両方のディレクトリ間で差分をとる:
ABCサーバーに移動し、123_ABCと123_XYZの差分を実行します
ABC > diff 123_ABC 123_XYZ > diff.txt
上記のコマンドは、diffの結果を同じパスのdiff.txtに保存します。
その後、違いを比較できます。
ありがとうございました、
メフル
AIDE Advanced Intrusion Detection Environment(AIDE)は、UNIXオペレーティングシステム用のファイル整合性チェッカーです。サポートされているファイルシステム上のデータの整合性に関するレポートを提供する目的。ターゲットホストでAIDEを複数回実行することにより、どのファイルが変更されているかを判断できます。異なるホストでAIDEを複数回実行することにより、どのファイルと許可が異なるかを判断できます。次に、報告された「異なる」ファイルでgui diffツールを使用します。
または、meld、guiffy、kdiff3、diff、vimdiff、gvimdiff、Emacs、Kompare、Diffuse、Easydiff、TkDiff、xxdiffなどのGUI diffツールを使用します。ほとんどは、ファイルの差分に加えてディレクトリの差分を行います。他の人が述べたように、NFS、SMBFS、またはSSHFSを使用してリモートドライブをマウントする必要があります。
または、ファイルのリストの出力で2つのファイルを使用できます。次に、これら2つのファイルを比較します。例えば:
/path/to/compare/remote$: ls > remote-files
/path/to/compare/local$: ls > local-files
ファイルの1つをダウンロードします。
-rw-r--r-- 1 1015 1015 26624 2005-06-14 13:10 FILE.TXT
FILE.TXTへ
diff(diff -y remote-files local-files > diff-files
)を使用して、それらを並べて比較します。差分ファイルを開いて確認します。>がある各行は、異なるファイルを意味します。