crontab 文件存儲 Linux 中的 cron 作業。 Cron 作業 (cron) 在固定的時間、日期和間隔定期運行。 它在 Windows 中的等價物是計劃任務。 可以使用 cron 安排所有重複性任務。
Crontab 文件是配置文件,其中包含有關要執行的時間和命令/腳本的信息。
在本教程中,我們學習 Linux crontab 和 例子 到 安排工作.
Crontab 語法
crontab 文件中的每一行代表一個作業。 它包含 五個領域 緊接著一個 shell 命令或腳本 執行。
句法:
* (Minute) *(Hour) * (Day of the Month) *(Month of the Year) *(Day of the Week) username <path to command/script to execute
>
* | 分鐘 | 此字段值介於 0 – 59 之間 |
* | 小時 | 此字段值介於 0 – 23 之間 |
* | 一個月中的哪一天 | 此字段值介於 1 – 31 之間 |
* | 一年中的一個月 | 此字段值介於 1 – 12 之間。月份的前 3 個字母也可以接受,如 jan、feb、mar |
* | 一周中的天 | 此字段值介於 0 – 7 之間。其中 0 和 7 是星期日。 1 是星期一,2 是星期二,就像明智的 |
Crontab 字段
定義多個值或範圍
要定義多個值和範圍,請使用逗號 (,) 和連字符 (-)。 星號 example匹配任何東西。 為了
, 顯示多個值使用 1,2,3 或 mon,tue,wed 並且範圍可以使用 1-3 或 mon-wed。
如何使用crotab 定時任務表
命令用於打開和編輯/添加 cron 作業。 在 Linux 上運行的 cron 守護進程在 crontab(cron 表)中定義的時間執行計劃作業。 主要的系統範圍的 crontab 文件是 /etc/crontab。 Cron 是由 默認
安裝在大多數 Linux 發行版中。 Linux 系統中的每個用戶都可以管理自己的 cron 作業。 每個用戶 cron 都存儲在 /var/spool/cron/crontabs/ 下。 cron 守護進程同時運行用戶和系統 crontab。
Cron 守護進程定義了一些默認的 $PATH,您可以在 /etc/crontab 中找到它。 如果它沒有定義使用絕對路徑或添加到 cron $PATH 變量。 MAILTO
Cron 郵件通知默認發送給 crontab 的所有者。 要更改此設置,請編輯
環境變量。 Cron 日誌 存儲在 /var/日誌/系統日誌 在 Ubuntu/Debian 系統和 /var/log/cron
在 Redhat/Rocky Linux 上。 您可以使用 grep 命令過濾日誌文件來驗證 cron 作業是否成功運行。
1.編輯/添加Crontab
$ crontab -e
要編輯(現有作業)或添加新的 cron,請使用 crontab -e 命令。 這將為當前用戶打開一個編輯器。
$ crotab -u username -e
要編輯另一個用戶 crontab 文件,請鍵入:
或者簡單地以該用戶身份登錄運行 crontab -e 命令。
2. 列出 Cron 作業
$ crontab -l
要列出當前用戶的所有作業,請鍵入:
$ crontab -u -l
要列出指定用戶的所有 cron 作業,請鍵入:
3.刪除cron作業
# crontab -r
要刪除當前用戶的所有 cron 作業,請執行以下命令:
注意:這將在不要求確認的情況下刪除所有 cron 作業。
# crontab -ir
如果要交互刪除,需要使用如下命令:
Crontab 作業示例
讓我們檢查一些用於調度 cron 作業的 crontab 示例。
1. 每 12 小時運行一次 cron 作業
0 */12 * * * /scripts/test.sh
這有助於定期進行系統檢查或備份。 要將任務安排為每 12 小時運行一次,請鍵入:
2. 每 5 分鐘運行一次 cron 作業
*/5 * * * * /scripts/test.sh
有時您需要每 n 分鐘監控一次系統。 使用以下表達式每 5 分鐘運行一次任務。
3. 每天凌晨 2 點運行 cron 作業
0 2 * * * /script/test.sh
可以安排在特定時間進行日常備份。 以下表達式在每天凌晨 2 點運行 cron 作業。
0 14 * * * /script/test.sh
要在每天下午 2 點安排 cron 作業,cron 使用 24 小時制。
30 12 * * * /script/test.sh
4. 每天凌晨 12:30 運行 cron job
5. 每分鐘運行一次 cron 作業 example為了
* * * * * /scripts/test.sh
,您有一個需要每分鐘運行一次的腳本,請使用以下表達式。
6. 在特定分鐘運行 cron 作業
2,15,30 * * * * /scripts/test.sh
使用以下 cron 表達式在第 2、15 和 30 分鐘運行腳本。
7. 運行 cron job 每週六凌晨 1 點運行
0 1 * * sat /scripts/test.sh
這有助於您在星期六的特定時間運行備份。 以下表達式有助於在每個星期六凌晨 1 點進行 cron 作業。
8. 運行 cron 作業以在特定月份運行
0 1 1 jan,apr,jun * /script/test.sh
在 1 月、4 月和 6 月的第 1 天的 01:00 運行 cron 作業。
9. 在選定的日期運行 cron 作業
0 4 * * sat,sun /script/test.sh
要在選定的日期(例如星期六和星期日)運行 cron 作業,請使用:
10. 在一天中的特定時間運行 cron 作業
0 9-17 * * * /script/test.sh
從 9 點到 17 點,每小時過去 0 分鐘
11.每週六週日運行兩次cron job
0 2,23 * * sat,sun /scripts/test.sh
Cron 作業允許在特定日期的特定時間運行任務
12. 在周一到週五的範圍內運行 cron 作業
0 2 * * mon-fri /scripts/test.sh
每週一至週五的每天 02:00。
13. 每月運行 cron 作業
@monthly /scripts/test.sh
您可以使用@monthly 使用快捷方式,而不是使用 0 0 1 * *。 它在每月第一天的 00:00 運行。 或者,您可以將腳本放在 /etc/cron.monthly/ 下。
14. 每週運行 cron 作業
@weekly /scripts/test.sh
您可以使用@weekly 使用快捷方式,而不是使用 0 0 * * mon。 它在星期一的 00:00 運行。 或者,您可以將腳本放在 /etc/cron.weekly/ 下。
15. 每天運行 cron 作業
@daily /scripts/test.sh
您可以使用@daily 使用快捷方式,而不是使用 0 0 * * *。 它在每天 00:00 運行。 或者,您可以將腳本放在 /etc/cron.daily/ 下。
16. 每小時運行一次 cron 作業
@hourly /scripts/test.sh
您可以使用@hourly 使用快捷方式,而不是使用 0 */1 * * *。 它在每小時 0 分鐘後運行。 或者,您可以將腳本放在 /etc/cron.hourly/ 下。
17. 重啟時運行 cron 作業
@reboot /scripts/test.sh
要在每次系統重新啟動時運行任務,請使用 @reboot 字符串。 該腳本將在重新啟動後執行。
18. 每 30 秒運行一次 cron 作業
Cron 只允許運行至少 60 秒。 沒有簡單的方法可以安排作業每 30 秒運行一次。
但是我們可以通過將延遲增加 30 秒來使用變通方法。
* * * * /scripts/run.sh * * * * 睡眠 30; /腳本/run.sh
19. 運行一個 cron 作業並重定向輸出
*/3 * * * * /usr/bin/php /script/run.php >> /var/log/run.log
這將每 3 分鐘運行一次 php 腳本並將輸出重定向到一個文件。
20.運行cron job執行多條命令
0 */12 * * Sun command1 && command2
要運行 cron 來執行多個命令,請在命令之間使用運算符 &&。
備份 cron 作業
# crontab -l > /backup/cron/root-bckup
要備份 cron,請使用以下命令
。文本文件
# crontab -u userName -l > /backup/cron/user-bckup.txt
要備份特定用戶的 cron,請鍵入:
# crontab /backup/cron/root-backup.txt
要從備份文件恢復 cron,簡單使用:
結論
在本教程中,我們了解了 Linux 中的 crontab 以及調度 cron 作業的示例。