Crontab定時任務排程介紹

tangyunoracle發表於2014-01-05
Crontab是一個作業系統的定時執行工具,可以在無需人工干預的情況下執行作業。一般在安裝作業系統都會把Crontab這個服務開啟,我們可以直接用這個服務,可以直接用crontab命令編輯,排程後臺作業:
crontab -u  -----設定某個使用者的crontab服務,一般root使用者在執行這個命令的時候需要此引數。
crontab -l  -----列出某個使用者cron服務的詳細內容
crontab -r  -----刪除某個使用者的cron服務
crontab -e  -----編輯某個使用者的cron服務
比如root檢視oracle的crontab設定:crontab -u oracle -l
   root想刪除oracle的crontab設定:crontab -u oracle -r
crontab的格式為:分 時 日 月 星期 要執行的命令,即crontab分為六列,第六列為要執行的命令或指令碼或指令碼所在的資料夾,其他五列代表排程的時間設定:
  第一個列代表分鐘,取值:0-59
  第二個列代表小時,取值:0-23
  第三個列代表日期,取值:1-31
  第四個列代表月份,取值:1-12
  第五個列代表星期,取值:0-6,其中0代表星期天
  除了規定的數字還有幾個個特殊的符號就是“*”、“/”和“-”、“,”,最經常用到的就是“*”,“*”代表所有的取值範圍內的數字,“/”代表每個單位的意思,"*/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
    crontab其實是儲存在/var/spool/cron下的,建立crontab會自動生成一個與此使用者同名的檔案,此使用者的crontab資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過一份鍾讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動crontab服務。
   這裡需要注意一個叫“run-parts”的引數,如果加上這個引數,代表執行資料夾中的命令,而不是執行指令碼或者命令,如果不加則代表執行命令或者指令碼。
比如:# run-parts
30 * * * * oracle run-parts /home/oracle/ty      ----每半點執行ty資料夾下的指令碼。
30 * * * * sh /home/oracle/ty.sh 1>/home/oracle/ty.sh.out 2>&1 ----每半點執行ty.sh指令碼。
由於Crontab是操作的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務。
# /sbin/service crond start  ------啟動服務
# /sbin/service crond stop   -----關閉服務
# /sbin/service crond restart -----重啟服務
# /sbin/service crond reload  -----重新載入配置
將“/sbin/service crond start”新增在/etc/rc.d/rc.local這個指令碼的末尾。
=============End==================================

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24930246/viewspace-1067356/,如需轉載,請註明出處,否則將追究法律責任。

相關文章