Linux系統定時任務

1、定時任務crond介紹linux


  1. crond是linux系統中用來按期執行命令或者指定程序任務的一種服務或者軟件。shell

  2. crond默認狀況下(每分鐘),會檢查系統中是否有須要執行的定時任務,若是有,就會根據事先定義好的規則來執行這個定時任務。就比如生活中的鬧鐘同樣。可是注意的是crond對於秒級的任務(以秒爲單位定時任務)是無能爲力的,須要寫守護進程(shell循環)腳本或者使用Quartz實現秒級任務。apache

  3. 在Linux中,週期執行的任務通常由cron這個守護進程來處理[ps -ef|grep cron]。cron的配置文件稱爲「crontab」,是「cron table」的簡寫。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。緩存

  4. service crond start    //啓動服務
    service crond stop     //關閉服務
    service crond restart  //重啓服務
    service crond reload   //從新載入配置
    service crond status   //查看服務狀態 
    bash

2、linux定時任務分類:

ide

  1. 系統自身的按期執行的任務:如輪詢系統日誌、備份系統數據、清理系統緩存等,這些定時任務無需人爲干預.系統任務調度的配置文件:/etc/crontab。工具

/etc/crontab配置基本格式 :    測試

SHELL=/bin/bash    #指定了系統要使用哪一個shell    spa

PATH=/sbin:/bin:/usr/sbin:/usr/bin    #指定了系統執行 命令的路徑,命令行

MAILTO=root     #指定了crond的任務執行信息將經過電子郵件發送給root用戶,若是MAILTO變量的值爲空,則表示不發送任務 執行信息給用戶,

HOME=/         #HOME變量指定了在執行命令或者腳本時使用的主目錄

基本格式 : 
*  *  *  *  *  command 
分  時  日 月  周   命令 
第1列表示分鐘0~59 每分鐘用*

第2列表示小時0~23 每小時用*

第3列表示日期1~31 天天用*

第4列表示月份1~12 每個月用*

第5列標識號星期0~6(0表示星期天) 

第6列要運行的命令 


/n    :每隔n單位時間(分、時、月、周)

17-19 :表示一段範圍

,    :表示不一樣時間點


書寫定時任務時要領:

一、增長定時任務調試頻率。我的開發環境->辦公室測試環境->IDC機房測試->IDC正式上線

二、經過腳本日誌輸出調試任務。

三、注意環境變量致使的定時任務故障(JAVA)。

四、經過定時任務服務日誌調試任務。(var/log/cron)

五、系統任務裏命令要用絕對路徑。

六、腳本權限問題要加/bin/bash.

七、時間變量問題用\%轉義,最好用腳本。

八、定時任務加註釋

九、使用腳本程序代替命令行定時任務。

十、避免沒必要要的程序命令輸出。



例如: 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 

上面的例子表示每晚的21:30重啓apache。

 

    二、用戶執行的任務:某個系統管理員或用戶按期要執行的任務。用戶按期要執行的工做,如用戶數據備份、定時郵件提醒等。用戶可使用 crontab 工具來定製本身的計劃任務。用戶任務調度的配置文件: /var/spool/cron/文件名(其文件名與用戶名一致,通常一個用戶最多隻有一個crontab文件)。

3、crontab命令詳解


  1. 命令功能:經過crontab 命令,咱們能夠在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位能夠是分鐘、小時、日、月、周及以上的任意組合。這個命令很是設合週期性的日誌分析或數據備份等工做。

  2. 命令格式:    crontab   [-u user]  [file]                    crontab [-u user] [ -e | -l | -r ]

  3. 命令參數:

    -u user:用來設定某個用戶的crontab服務,例如,「-u Tom」表示設定Tom用戶的crontab服務,此參數通常有root用戶來運行。

    -e:編輯某個用戶的crontab文件內容。若是不指定用戶,則表示編輯當前用戶的crontab文件。

    -l:顯示某個用戶的crontab文件內容,若是不指定用戶,則表示顯示當前用戶的crontab文件內容。

    -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,若是不指定用戶,則默認刪除當前用戶的crontab文件。

    -i:在刪除用戶的crontab文件時給確認提示。

相關文章
相關標籤/搜索