linux 中 20 個 crontab 示例

如何添加 / 編輯 Crontab

要在 crontab 中添加或更新作業,請使用以下命令。它將在編輯器中打開一個 crontab 文件,可以在其中添加 / 更新作業。

crontab -e

默認情況下,它將編輯當前登錄用戶的 crontab 條目。要編輯其他用戶 crontab 使用命令如下

crontab -u username -e

如何列出 Crontab

要查看當前用戶的 crontab 條目,請使用以下命令。

crontab -l

使用 -u 後跟用戶名來查看指定用戶的 crontab 條目。

crontab -u username -l

20 個有用的 Crontab 示例

以下是使用 crontab 在 Linux 系統中調度 cron 作業的示例列表。

1. 安排一個 cron 在每天凌晨 2 點執行。

這對於每天安排數據庫備份很有用。

0 2 * * * /bin/sh bashup.sh
2. 安排一個 cron 每天執行兩次。

下面的示例命令將在每天上午 5 點和下午 5 點執行。您可以通過逗號分隔指定多個時間戳。

0 5,17 * * * /scripts/script.sh
3. 安排一個 cron 每分鐘執行一次。

通常,我們不需要每分鐘執行任何腳本,但在某些情況下,您可能需要對其進行配置。

* * * * * /scripts/script.sh
4. 安排一個 cron 在每週日下午 5 點執行。

這種類型的 cron 可用於執行每週任務,例如日誌輪換等。

0 17 * * sun /scripts/script.sh
5. 安排一個 cron 每 10 分鐘執行一次。

如果你想以 10 分鐘的間隔運行你的腳本,你可以像下面這樣配置。這些類型的 cron 可用於監控。

*/10 * * * * /scripts/monitor.sh

*/10表示每 10 分鐘運行一次。就像你想每 5 分鐘執行一次一樣,使用 */5

6. 安排一個 cron 在選定的月份執行。

有時我們需要安排一個任務只在選定的月份執行。下面的示例腳本將在 1 月、5 月和 8 月運行。

* * * jan,may,aug * /script/script.sh
7. 安排一個 cron 在選定的日期執行。

如果您需要安排任務僅在選定的日期內執行。下面的示例將在每個星期日和星期五下午 5 點運行。

0 17 * * sun,fri /script/script.sh
8. 安排一個 cron 在每個月的第一個星期日執行。

無法通過時間參數安排腳本僅在第一個星期天執行腳本,但我們可以使用命令字段中的條件來執行此操作。

0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
9. 安排一個 cron 每四個小時執行一次。

如果您想以 4 小時的間隔運行腳本。它可以像下面這樣配置。

0 */4 * * * /scripts/script.sh
10. 安排一個 cron 在每個星期日和星期一執行兩次。

將任務安排爲僅在週日和週一執行兩次。使用以下設置來做到這一點。

0 4,17 * * sun,mon /scripts/script.sh
11. 安排一個 cron 每 30 秒執行一次。

無法通過時間參數安排每 30 秒執行一次任務,但可以通過安排相同的 cron 兩次來完成,如下所示。

* * * * * /scripts/script.sh
* * * * * sleep 30; /scripts/script.sh
12. 在單個 cron 中安排多個任務。

使用單個 cron 配置多個任務,可以通過用分號 (;) 分隔任務來完成。

* * * * * /scripts/script.sh;/scripts/scrit2.sh
13. 安排任務每年執行(@yearly)。

@yearly 時間戳類似於0 0 1 1 *。它會在每年的第一分鐘執行一項任務,發送新年問候可能有用

@yearly /scripts/script.sh
14. 安排任務每月執行(@monthly)。

@monthly 時間戳類似於0 0 1 * *。它將在每月的第一分鐘執行任務。每月執行諸如支付賬單和向客戶開具發票等任務可能會很有用。

@monthly /scripts/script.sh
15. 安排每週執行的任務 (@weekly)。

@weekly 時間戳類似於0 0 * * mon。它將在一週的第一分鐘執行一項任務。執行每週任務(例如系統清理等)可能很有用。

@weekly /bin/script.sh
16. 安排每天執行的任務 (@daily)。

@daily 時間戳類似於0 0 * * *。它將在每天的第一分鐘執行一項任務,它可能有助於完成日常任務。

@daily /scripts/script.sh
17. 安排任務每小時執行一次(@hourly)。

@hourly 時間戳類似於0 * * * *。它將在每小時的第一分鐘執行一項任務,執行每小時任務可能很有用。

@hourly /scripts/script.sh
18. 安排在系統重啓時執行的任務 (@reboot)。

@reboot 對於您希望在系統啓動時運行的任務很有用。它將與系統啓動腳本相同。它對於在後臺自動啓動任務很有用。

@reboot /scripts/script.sh
19. 將 Cron 結果重定向到指定的電子郵件帳戶。

默認情況下,cron 將詳細信息發送到調度 cron 的當前用戶。如果您想將其重定向到您的其他帳戶,可以通過設置 MAIL 變量來完成,如下所示

crontab -l
0 2 * * * /script/backup.sh
20. 將所有 cron 備份到純文本文件。

我建議將所有作業條目的備份保存在一個文件中。這將幫助您在意外刪除的情況下恢復 cron。

檢查當前計劃的 cron:

crontab -l
0 2 * * * /script/backup.sh

將 cron 備份到文本文件:

crontab -l > cron-backup.txt
cat cron-backup.txt
0 2 * * * /script/backup.sh

刪除當前計劃的 cron:

crontab -r
crontab -l
no crontab for root

從文本文件恢復 cron:

crontab -l
0 2 * * * /script/backup.sh
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/AuQGJ0JV3TJoAxjRzWyyfg