如何在 Linux 中檢查 Crontab 日志
?作為 Linux 用戶,你可能已經熟悉 crontab?,其可以通過預定義的計劃運行命令和腳本來自動化任務。實際的應用場景比如可以自動備份。
我們今天不是要討論 crontab 的用法,而是展示檢查 crontab 日志的不同方法。查看日志也有助于檢查 crontab 任務是否按計劃運行。
方法1:檢查 syslog 中的 crontab 日志
我們在 Linux系統目錄結構? 中介紹過,目錄 /var/log 主要用來存儲由系統、服務以及應用程序產生的日志。?
雖然 cron 日志也在這個目錄中,但一般情況下這些日志沒有標準文件,不同的 Linux 發行版將它們保存在不同的文件中。
在基于 Debian 的系統中,cron 的日志存放在文件 /var/log/syslog 中。要查看 cron 相關的日志,可以結合使用 grep 命令來過濾掉其他日志信息,如下命令:
在紅帽系統中,cron 有一個專門的日志文件:/var/log/cron。
另外,檢查 syslog 文件,需要有管理員權限。
方法2:使用自定義日志文件(推薦)
建議使用單獨的自定義文件來記錄 cron 作業。
為此,你可以將 “rsyslog” 配置為轉發cron日志。Rsyslog是一個Linux服務,具有類似于Syslog日志記錄的功能。
首先需要創建一個 cron.log 文件,將其放在 /var/log 目錄下:
然后編輯 /etc/rsyslog.d/50-default.con 文件:
找到以 #cron.* 開頭的行,將其前面的井號 # 刪除。
保存并關閉該文件,然后重啟 rsyslog 服務并檢查其狀態:
正常情況下,服務的狀態應為突顯的 active (running):
現在,當需要查看 crontab 日志的時候,只需要查看自定義的日志文件即可:
方法3:使用 Cronitor 等專用服務監控 cron 作業
Cronitor 是一個可以用來監視 cron 作業的服務。
許多 cron 版本會在計劃任務開始執行的時候,或者出現問題的時候記錄日志,但是其作業的輸出以及退出不會記錄在日志中。
Cronitor 是一個幾乎完美的解決方案,可以滿足所有 crontab 的需求。它捕獲所有作業的日志、指標和狀態,并在任務崩潰或無法啟動時即時警報。
關于其使用方法,大家可以在其官網查看。
?對于安裝在 Kubernetes 上的 Cronitor 或 CronitorCLI,單次執行可以捕獲高達100MB的日志。大家可以在如下地址中查看 Linux 中安裝 CronitorCLI 的詳細步驟:
https://cronitor.io/docs/using-cronitor-cli%23installation
其他監控工具和服務(如Better Uptime)也提供了自動監控cron作業的功能。
系統日志文件對于故障排除和診斷系統相關問題非常重要,cron 日志也一樣。