在系統管理中,少不了 crontab 任務調度工具。使用 crontab,您可以在特定的日期和時間運行腳本和命令。要很好地使用它,您需要知道如何編輯 crontab 文件。
Understanding Crontab
crontab (cron table) 它是由 cron 守護進程使用的文件。cron 守護進程是 Linux 中的一個工具,它在預定時間運行系統上的任務。計劃由 crontab 文件設置,該文件是一個簡單的文本文件,包含命令列表和何時運行它們。crontab 文件中的每一行都有用於調度任務的特定格式。
Accessing the Crontab File
要打開用户指定的 crontab 文件,使用 crontab -e 命令。
Crontab File Syntax
理解 cron 語法是編輯 crontab 文件的關鍵。文件中的每一行都是一個 cron 作業,並遵循這種格式。
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of the month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
字段中的星號 (*) 表示每個值,如 每分鐘、 每小時 、 每天
Editing the Crontab File
在 crontab 文件中,您可以使用上面的語法添加任務。例如,要在每天凌晨 3 點運行備份腳本。
0 3 * * * /path/to/yourscript.sh
保存並關閉該文件,cron 守護進程將使用新的任務調度啓動。
Common Crontab Commands
下面是一些常見的 crontab 命令:
crontab -e編輯 crontab 文件crontab -l顯示 crontab 文件的內容crontab -r刪除當前的 crontabcrontab -i刪除 crontab 之前帶提示
Crontab Special Strings
Crontab 還支持特殊字符串來替換五個時間和日期字段
@reboot在啓動時運行一次@yearly:每年運行一次,等同 "0 0 1 1 *"@annually:等同@yearly@monthly:每月運行一次,等同 "0 0 1 "@weekly:每週運行一次,等同 "0 0 0"@daily:每天運行一次,等同 "0 0 *"@hourly: 每小時運行一次,等同 "0 "
這些特殊的字符串使 crontab 文件更易於閲讀和管理。
Handling Output
默認情況下,cron 發送帶有每個作業輸出的電子郵件。要更改輸出的位置,請使用 shell 重定向。
30 2 * * * /path/to/yourscript.sh > /path/to/outputfile 2>&1
">" 將腳本的輸出發送到一個文件,而 "2>&1" 將錯誤輸出發送到與標準輸出相同的位置。
Final Thought
一定要測試 cron 任務,以確保它們按預期運行。
我的開源項目
- course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github倉庫)