Bash
審查 crontab 腳本以將時間戳添加到每分鐘執行;有什麼建議麼?
我有一個 crontab 作業設置為每分鐘執行一次:
* * * * * /home/username/public_html/domain.tld/production/scripts/cron_runner.sh
我的目標是為 cron 的輸出添加一些時間戳,這樣我就可以更輕鬆地找到有關 webapp 內部 cron 系統中某些故障點的資訊。有時我收到消息,有時我沒有出現,我只想執行一個健全性檢查,我已經在這裡正確建構了這個腳本:
#!/usr/bin/env bash # # Script Name: cron_runner.sh # echo "Cron Execution @ `date`: " >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1 cd /home/username/public_html/domain.tld/production && /usr/local/bin/php /home/username/public_html/domain.tld/production/cron.php >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1 echo "==== END CRON EXEC ====" >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
有什麼建議麼?
您可以將腳本通過管道傳輸到
ts
from moreutils,這會將時間戳添加到每一行,例如:(cd /home/username/public_html/domain.tld/production && /usr/local/bin/php /home/username/public_html/domain.tld/production/cron.php) | ts >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
此外,每次
crond
執行作業時,它通常會將其記錄在/var/log/cron
(取決於 *nix 風格)下,所以如果適用於您,我應該先檢查一下。