ディレクトリ内のファイルが2秒間隔で変更されたかどうかを検出するスクリプトを作成しようとしています。私が今まで持っているのは次のとおりです。
#!/bin/bash
for FILE in "${PWD}/*"
do
SUM1="$(md5sum $FILE)"
sleep 2
SUM2="$(md5sum $FILE)"
if [ "$SUM1" = "$SUM2" ];
then
echo "Identical"
else
echo "Different"
fi
done
これは「同じ」値を一度だけ出力するので、各ファイルを確認し、ファイルごとに「同じ」または「異なる」を出力したいと思います。
編集する:インストールしなくても大丈夫ですか?inotify-tools
パック?
ベストアンサー1
あなたはそれを使用することができますイノティファイツール次のようにコマンドラインから確実に:
inotifywait -r -m /dir/to/monitor/
~から人々は待つ
-m
、--monitor
単一のイベントを受信した後に終了するのではなく、無期限に実行されます。デフォルトの動作は、最初のイベントが発生した後に終了することです。
これはmanファイルからコピーされた継続的な監視スクリプトですinotifywait
。
#!/bin/sh
while inotifywait -e modify /var/log/messages; do
if tail -n1 /var/log/messages | grep apache; then
kdialog --msgbox "Blah blah Apache"
fi
done