もちろん、cmp(1)は両方のファイルの内容が同じかどうかを知らせますが、バックアップから復元をテストするために関連(!)ファイルのプロパティも比較したいと思います。
だから私が次のような簡単なことをするなら
mv foo.bar foo.bar.save
deja-dup --restore foo.bar # or some other backup tool
foo.barとfoo.bar.saveのプロパティを比較し、シェルスクリプト(または同様のスクリプト)で十分な同等性をテストするにはどうすればよいですか?私はできます。
stat foo.bar{,.save}
そして、inode、atime、ctime(そして何らかの理由でリンク数)を無視することを覚えながら、出力を手動で確認しますが、これはエラーが発生しやすいです。 SELinuxやその他の属性を含むcmp-with-attributesツールはありますか?理想的には、すべてのシステムでFedoraおよびext4ファイルシステムで実行する必要があります。 Perlで何かを変更する必要がありますか?
(バックアップが正常に動作していることをテストしないと、バックアップする意味はありません。)
ベストアンサー1
getallattr() {
[ -L "$1" ] || lsattr -d -- "$1" | sed 's/ .*//;q'
getfattr -hdm- -- "$1" | tail -n +2 | sort
stat -c '%u %g %a %s %x %y' -- "$1"
}
すべての属性を検索します(少なくとも簡単に復元できる属性)。組み込みではstat
なく、zshまたは互換性のGNU実装を想定しています。stat
コンテンツダイジェスト/チェックサム形式を含めることもできます(例:sha1sum/b2sum...)。
それから
diff <(getallattr file1) <(getallattr file2)
(ksh、zsh、bash構文)。