Linux
如何記錄 cron 執行的時間。
我有一個 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).