帶有 Cron 作業示例的 Linux Crontab

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 字段

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 作業的示例。


如果您有任何反饋和建議,請在下方評論。