条件付きcrontabエントリ

条件付きcrontabエントリ

スクリプトを実行し、出力をcurrenthash.logなどのファイルにMD5ハッシュとして保存するcrontabエントリがあります。

ただし、MD5チェックサムが変更された場合は、Changehash.logなどの新しいファイルを作成する必要があるという要件を満たすことはできません。 cronjobまたはスクリプト自体でこれを実行できますか?

答え1

cronジョブの実行方法にロジックはありません。

指定した瞬間にコマンドが生成されます。

これらのインテリジェンスを実現するには、スクリプトに実装する必要があります。

logrotate他の管理方法(特定の条件でログファイルを循環)を使用することもできます。incroncron-サービスと同様に、トリガーは次のようになります。inotify時間よりも事件)。

答え2

古いハッシュをどこかに保存してから、新しいハッシュと比較する必要があります。この方向に何か:

#!/bin/sh
file=/path/to/file
hashfile=/path/to/stored/hash
newhash=$(md5sum "$file")
oldhash=$(cat "$hashfile")
if [ "$newhash" != "$oldhash" ]; then
    echo it changed...
fi
echo "$newhash" > "$hashfile"

関連情報