有條件的 crontab 條目

有條件的 crontab 條目

我有一個 crontab 條目,它執行腳本並將輸出儲存在檔案中,例如 currenthash.log 作為 MD5 哈希值。

但我無法實現這樣的要求:如果 MD5 校驗和發生變化,我需要建立一個新文件,例如changehash.log。這是我可以在 cronjob 或腳本本身中執行的操作嗎?

答案1

cron沒有關於任務如何運作的邏輯。

它只是在您指定的時刻產生命令。

對於這種智能,您必須在腳本中實現它。

另一種管理方法也可以使用logrotate(在某些條件下輪換日誌檔案)或incron( cron-類似服務,觸發器是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"

相關內容