cron 是 UNIX, SOLARIS,LINUX 下的一個十分有用的工具。通過 cron 腳本能使計劃任務定期地在系統背景自動運作。
<code>crontab -e</code> – 編輯該使用者的 crontab,當指定 crontab 不存在時建立。
<code>crontab -l</code> – 列出該使用者的 crontab。
<code>crontab -r</code> – 删除該使用者的 crontab。
<code>crontab -u<使用者名稱></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