だから私は何十ものファイルをチェックするためにシェルスクリプトを使ってみました。ファイルチェックは異なる時間に発生します。
これを行う方法はありますか?
md5sum -c 24f4ce42e0bc39ddf7b7e879a File.name
より良いsha512sum
sha512sum -c 24f4ce42e0bc39ddf7b7e879a File.name
今これを行う必要があります。
md5sum -c file.md5sums File.name
または、すべてのmd5sumを1つのファイルに入れて、次のように確認することもできます。
md5sum -c `sed 1p file.md5sums` File.name
md5sum -c `sed 2p file.md5sums` File.name
md5sum -c `sed 3p file.md5sums` File.name
md5sum -c `sed 4p file.md5sums` File.name
たった1つのアイテムで何十ものファイルを持つことは愚かなようです。
答え1
複数のファイルに対してsha256sumを実行し、出力をテキストファイルに書き込んでからsha256sumを実行できましたが、sha256sum -c sumfile
私はうまくいきました。
$ sha256sum $(find /etc/ -maxdepth 1 -type f) > test.txt
$ sha256sum -c test.txt
...
/etc/statetab: OK
/etc/sysctl.conf: OK
/etc/system-release: OK
/etc/system-release-cpe: OK
/etc/termcap: OK
/etc/updatedb.conf: OK
/etc/vconsole.conf: OK
/etc/vimrc: OK
/etc/virc: OK
/etc/yum.conf: OK
...
$ sha256sum --version
sha256sum (GNU coreutils) 8.22
答え2
GNU coreutilsコレクションの他のすべての同様のユーティリティと同様に、このmd5sum
ユーティリティはチェックサムファイルを取得し、ファイルシステム内の対応するファイルと比較して確認できます。
次のチェックサムファイルを作成したとします。
$ md5sum /etc/* >sums
$ cat sums
e55afe6e88abb09f0bee39549f1dfbbd /etc/afpovertcp.cfg
279f7ab7d2609163e5034738b169238b /etc/aliases
5c1ba75b6d9d8cf921ec83e2a54c9bb5 /etc/asl.conf
[...]
d41d8cd98f00b204e9800998ecf8427e /etc/xtab
32d37eb59a7c3735635db329adad86d7 /etc/zprofile
4efb8dbeb8f46ca3879666b313a2607f /etc/zshrc
その後、すべてのチェックサムを一度に確認できます。
$ md5sum -c sums
/etc/afpovertcp.cfg: OK
/etc/aliases: OK
/etc/asl.conf: OK
[...]
/etc/xtab: OK
/etc/zprofile: OK
/etc/zshrc: OK
私はあなたを誤解しましたが、確認したい場合特定ファイルにいくつかのファイルを追加sums
し、次の手順を実行します。
$ fgrep "/etc/xtab" sums | md5sum -c -
答え3
スクリプトでこれを行うと、次の簡単な比較チェックを実行できます。
if [ "$(md5sum < File.name)" = "24f4ce42e0bc39ddf7b7e879a -" ]
then
echo Pass
else
echo Fail
fi
追加のスペースと-
md5sumの出力と一致する必要があることに注意してください。
もっと綺麗に見えたら一行にできます
[[ "$(md5sum < File.name)" = "24f4ce42e0bc39ddf7b7e879a -" ]] && echo Pass || echo Fail
答え4
単一ファイルの場合は、bashでこれを実行して文字列をファイルに渡すことができます。
md5sum -c <(echo "24f4ce42e0bc39ddf7b7e879a File.name") File.name