Linux

如何記錄 cron 執行的時間。

  • September 28, 2011

我有一個 cron 設置為每分鐘執行一次

* * * * * /usr/php /my/location/script.php 

現在,我使用時間函式來測量腳本執行時間。所以,跑步

console$ time /usr/php /my/location/script.php 

輸出

real    0m0.000s
user    0m0.000s
sys     0m0.000s

但它不適用於像這樣的 cron:

* * * * * time /usr/php /my/location/script.php 2>&1 >> my_log_file

它在命令行上也不起作用

console$ time /usr/php /my/location/script.php >> my_log_file

在上述兩個範例中,time 函式實際上計算了寫入 my_log_file 所用的時間,而不是將其輸出寫入日誌文件。在腳本中添加程式碼並記錄 STD 輸出不是一種選擇。

關於什麼:

* * * * *    (time /usr/php /my/location/script.php) >>my_log_file 2>&1

內置的 cron 守護程序功能怎麼樣?

檢查您的 cron 守護程序的手冊頁。許多都有一個“-L”參數來指定日誌級別。例如在 Ubuntu(即 Debian)上:

-L loglevel
          Sets  the loglevel for cron. The standard logging level (1) will log the
          start of all the cron jobs. A higher loglevel (2) will cause cron to log
          also the end of all cronjobs, which can be useful to audit the behaviour
          of tasks run by cron. Logging will be disabled if the loglevel is set to
          zero (0).

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