linux定時任務(crontab)的學習

2021-07-08 13:43:36 字數 1653 閱讀 6626

crond是linux下用來週期性執行某種任務或者等待處理某些事件的乙個守護程序。crond每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。linux下的任務分兩類:

a  系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc目錄下有乙個crontab檔案,就是系統任務排程的配置檔案。

系統任務排程主要完成系統的一些維護操作。

b  使用者任務排程:使用者定期要執行的工作,比如使用者資料備份、定時郵件提醒等。使用者可以使用crontab工具來定 制自己的計畫任務。所有使用者定義的crontab檔案都被儲存在/var/spool/cron目錄中。其檔名與使用者名稱一致。

使用者任務排程主要完成使用者自定義的一些任務,可以將使用者任務排程放到系統任務排程來完成(一般不建議這麼做),但反過來卻不行。root使用者的任務排程操作可以通過「crontab  -uroot  -e」來設定,也可以直接寫入/etc/crontab檔案,需要注意的是,如果要定義乙個定時重啟系統的任務,就必須將任務放到/etc/crontab檔案中。

crontab的使用格式:

--  crontab  [-u user] [file]

--   crontab  [-u user] [-e|-l|-r|-i]

選項含義:

// -u user:用來設定某個使用者的crontab服務,例如,「-u ixdba」表示設定ixdba使用者的crontab服務,此引數一般有   root使用者來執行。

// file:file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab。如果在命令列中沒有指定這個 檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

//-e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案。

// -l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容。

// -r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案。

// -i:在刪除使用者的crontab檔案時給確認提示。

crontab檔案格式:

minute:表示分鐘,可以是從0-59之間的任何整數

hour:表示小時,可以是0-23之間的任何整數

day:表示日期,可以是1-31之間的任何整數

month:表示月份,可以是從1-12之間的任何整數

week:表示星期幾,可以是從0-7之間的任何整數

在以上各個欄位中,還可以使用以下特殊字元:

星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該  命令操作。例如: 0 12 * * * mail  alix -s 「at 12:00」 

ex:30  21  *  *  *  /usr/local/etc/rc.d/ghttpd  restart   //每晚的21:30重啟lighttpd 。 

參考:

 

Linux linux定時任務crontab

crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

linux定時任務

crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...