Bash

審查 crontab 腳本以將時間戳添加到每分鐘執行;有什麼建議麼?

  • April 24, 2013

我有一個 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

有什麼建議麼?

您可以將腳本通過管道傳輸到tsfrom 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 風格)下,所以如果適用於您,我應該先檢查一下。

引用自:https://serverfault.com/questions/502329