Cron任務計劃
我們将系統執行的計劃寫成了腳本,但是不立即執行,安排在未來的某一時刻執行,這種機制就叫做任務計劃,
任務計劃方式有兩種,下面詳細介紹一下
1、在未來的某個時間點執行一次某任務;兩個指令(at和batch)
at
batch
at 時間
at> COMMAND
at> Ctrl+d

指定時間:
絕對時間:HH:MM, DD.MM.YY MM/DD/YY
相對時間:now+#
機關:minutes, hours, days, weeks
模糊時間:noon, midnight, teatime
指令的執行結果:将以郵件的形式發送給安排任務的使用者 ,後面必須加上機關。
at -l :顯示作業的
at -d AT_JOB_ID = atrm AT_JOB_ID:删除作業的
2、周期性地執行某任務;(cron)
cron:自身是一個不間斷運作的服務
anacron: cron的補充,能夠實作讓cron因為各種原因在過去的時間該執行而未執行的任務在恢複正常執行一次;
cron:
系統cron任務:
/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
~
分鐘 小時 天 月 周 使用者 任務
使用者cron任務:
/var/spool/cron/USERNAME
分鐘 小時 天 月 周 任務
時間的有效取值:
分鐘:0-59
小時:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
時間通配表示:
*: 對應時間的所有有效取值
3 * * * *
3 * * * 7
13 12 6 7 *
,: 離散時間點:
10,40 02 * * 2,5
-:連續時間點:
10 02 * * 1-5
/#: 對應取值範圍内每多久一次
*/3 * * * *
每兩小時執行一次:
08 */2 * * *
每兩天執行一次:
10 04 */2 * *
執行結果将以郵件形式發送給管理者:
*/3 * * * * /bin/cat /etc/fstab &> /dev/null
cron的環境變量:cron執行所有指令都去PATH環境變量指定的路徑下去找
PATH /bin:/sbin:/usr/bin:/usr/sbin
使用者任務的管理:
crontab
-l: 列出目前使用者的所有cron任務
-e: 編輯
-r: 移除所有任務
-u USERNAME: 管理其使用者的cron任務
anacron:是cron的補充,替代不了
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly