天天看點

Cron任務計劃

Cron任務計劃

   我們将系統執行的計劃寫成了腳本,但是不立即執行,安排在未來的某一時刻執行,這種機制就叫做任務計劃,

任務計劃方式有兩種,下面詳細介紹一下

1、在未來的某個時間點執行一次某任務;兩個指令(at和batch)

at

batch

at 時間

at> COMMAND

at> Ctrl+d

Cron任務計劃

指定時間:

絕對時間:HH:MM, DD.MM.YY  MM/DD/YY

相對時間:now+#

機關:minutes, hours, days, weeks

模糊時間:noon, midnight, teatime

指令的執行結果:将以郵件的形式發送給安排任務的使用者 ,後面必須加上機關。

Cron任務計劃

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