天天看點

【簡記】Linux 計劃任務 Crontab

cron 是 UNIX, SOLARIS,LINUX 下的一個十分有用的工具。通過 cron 腳本能使計劃任務定期地在系統背景自動運作。

<code>crontab -e</code>  – 編輯該使用者的 crontab,當指定 crontab 不存在時建立。

<code>crontab -l</code> – 列出該使用者的 crontab。

<code>crontab -r</code> – 删除該使用者的 crontab。

<code>crontab -u&lt;使用者名稱&gt;</code> – 指定要設定 crontab 的使用者名稱。

重新開機指令:

Crontab 字段與允許的值 (Linux Crontab)

cron 的基本用法是在特定的時間執行一項任務,如下是 6 月 10 上午 8:30 執行 Full backup shell script。 要注意的是時間字段采用的是 24 小時制,如果是下午 8 點,則改寫為 20 點

<code>30 08 10 06 * /home/ramesh/full-backup</code>

30 – 第 30 分鐘

08 – 早上 8 點

10 – 10 号

06 – 第 6 個月 (6 月)

* – 一周的任何一天

下面的增量備份腳本每天執行兩次。

每天于 11:00, 16:00 執行,逗号兩側的時間都會執行。

<code>00 11,16 * * * /home/ramesh/bin/incremental-backup</code>

00 – 第 0 分鐘 (每小時開時)

11,16 – 早上 11 點與下午 4 點

* – 每天

* – 每個月

下面這個例子是每天 9:00-16:00 檢查資料庫狀态(包括周六)

<code>00 09-18 * * * /home/ramesh/bin/check-db-status</code>

09-18 – 9 點, 10 點, 11 點, 12 點, 下午 1 點, 下午 2 點, 下午 3 點, 下午 4 點, 下午 5 點, 下午 6 點

如果隻想工作日執行此操作

<code>00 09-18 * * 1-5 /home/ramesh/bin/check-db-status</code>

1-5 – 周一, 周二, 周三, 周四和周五 (工作日)

理論情況下,沒有每分鐘都要執行的 shell,但下面這個例子,讓我們更好的了解 crontab

<code>*</code> 代表着所有可能取到的值,除了直接用 * 外,下面的幾個例子也較為常用

當指定 <code>*/5</code> 在分鐘字段,代表每五分鐘。

當指定 <code>0-10/2</code> 在分鐘字段,代表在前十分鐘的每兩分鐘

上面的例子對于其它四個字段同樣試用

有一些特殊的例子,可以用關鍵字替代上述五個字段 <code>– reboot, midnight, yearly, hourly</code>

Table: Cron special keywords and its meaning

下面的例子将在每一年的 1 月 1 日 0:00 執行

下面的例子将在每月 1 日 0:00 執行

下面的例子将在每天 0:00 執行

預設情況下,crontab 将向布置定時任務的管理者發送郵件,如果想重定向此使用者,添加并更新 MAIL

如果不想任何人接收,則直接将 MAIL 置空

無法安排每秒執行,因為最小處理單元是分鐘,另一方面,沒有什麼理由讓我們每秒都執行一任務

上面的例子都是用絕對的路徑

如果你想用相對的路徑,設定環境變量可以在 crontab 增加

除了直接編輯外,你也可以先在一個檔案中編輯好任務,再導入

應用時要注意,此操作會删除原有的cron任務

Linux 計劃任務之crontab

Linux檢視目前存在的計劃任務指令是什麼?

檢視所有使用者的crontab任務

Linux crontab 指令詳解(含配置檔案路徑)

linux計劃任務之crontab