定時任務之crontab命令,任務之crontab命令

來源:互聯網
上載者:User

定時任務之crontab命令,任務之crontab命令
1、簡介crontab用於設定周期性被執行的命令Linux系統中Linux調動工作分為兩大類:  1、系統執行的工作:系統周期性所要執行的工作,如備份系統資料、清理緩衝  2、個人執行的工作:某個使用者定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個使用者自行設定/etc/crtontab  系統調度的任務一般存放在/etc/crontab這個檔案下,裡面存放了一些系統啟動並執行發送器,通過命令cat crontab查看  這些任務會在系統運行起來自動調用/var/spool/cron  每個使用者都會產生自動產生一個自己的crontab檔案,一般位於/var/spool/cron目錄下  執行命令crontab -r 就會刪除目前使用者的crontab檔案。例如你切換到suifeng帳號下,執行了該命令,那麼/var/spool/cron/suifeng檔案就會刪除,如果要建立該檔案只需要用crontab -e命令即可。  注意,普通使用者一般沒有許可權訪問/var/spool/cron/etc/crontab.deny檔案與/etc/crontab.allow檔案  1、分別表示不能使用crontab命令的使用者、以及能夠使用crontab命令的使用者  2、兩個檔案同時存在crontab.allow檔案優先  3、兩個檔案都不存在則只有root使用者才擁有調用該命令 2、文法crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]各個參數說明:建立定時任務  crontab -e進入文本(vi)編輯狀態  * * * * * command path  // 前五個欄位可以取整數值,指定何時開始工作,第六個域是字串,即命令欄位,其中包括了crontab調度執行的命令。 各個欄位之間用spaces和tabs分割。(可將命令寫入.sh指令檔中,並賦予可執行檔許可權即可)調度命令的規則:

欄位名稱 說明 取值範圍
分鐘 每小時的第幾分鐘執行 0-59
小時 每日的第幾個小時執行 0-23
日期 每月的第幾天執行 1-31
月曆 每年的第幾月執行 1-12
星期 每周的第幾天執行 0-6
命令名稱 欲執行的命令及參數  
crontab命令中的一些常用特殊符號:
符號 說明
* 表示任何時刻
, 表示分割
表示一個段,如第二段裡: 1-5,就表示1到5點
/n 表示每個n的單位執行一次,如第二段裡,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.
查看定時任務:crontab -l 刪除定時任務:crontab -r 3、使用樣本執行個體1:  每1分鐘執行一次command  命令:* * * * * command執行個體2:  每小時的第3和第15分鐘執行  命令:3,15 * * * * command執行個體3:  在上午8點到11點的第3和第15分鐘執行  命令:3,15 8-11 * * * command執行個體4:  每隔兩天的上午8點到11點的第3和第15分鐘執行  命令:3,15 8-11 */2 * * command執行個體5:  每個星期一的上午8點到11點的第3和第15分鐘執行  命令:3,15 8-11 * * 1 command執行個體6:  每晚的21:30重啟smb   命令:30 21 * * * /etc/init.d/smb restart執行個體7:  每月1、10、22日的4 : 45重啟smb   命令:45 4 1,10,22 * * /etc/init.d/smb restart執行個體8:  每周六、周日的1 : 10重啟smb  命令:10 1 * * 6,0 /etc/init.d/smb restart執行個體9:  每天18 : 00至23 : 00之間每隔30分鐘重啟smb   命令:0,30 18-23 * * * /etc/init.d/smb restart執行個體10:  每星期六的晚上11 : 00 pm重啟smb   命令:0 23 * * 6 /etc/init.d/smb restart執行個體11:  每一小時重啟smb   命令:* */1 * * * /etc/init.d/smb restart執行個體12:  晚上11點到早上7點之間,每隔一小時重啟smb   命令:* 23-7/1 * * * /etc/init.d/smb restart執行個體13:  每月的4號與每周一到周三的11點重啟smb   命令:0 11 4 * mon-wed /etc/init.d/smb restart執行個體14:  一月一號的4點重啟smb   命令:0 4 1 jan * /etc/init.d/smb restart執行個體15:  每小時執行/etc/cron.hourly目錄內的指令碼  命令:01 * * * * root run-parts /etc/cron.hourly  說明:run-parts這個參數了,如果去掉這個參數的話,後面就可以寫要啟動並執行某個指令碼名,而不是目錄名 執行個體16:  1、每天23點59分後台執行test.sh指令碼;並將標準輸出寫入log.txt中  命令:59 23 * * * /home/suifeng/scripts/test.sh >/home/suifeng/log.txt &  2、同上  命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &  3、每天23點59分後台執行test.sh指令碼;並將錯誤輸出寫書log.txt中  命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &  4、每天23點59分後台執行test.sh指令碼;並將錯誤輸錯當做標準輸出(即將錯誤輸出和標準輸出全部寫入log.txt中)  命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt 2>&1 & 相關說明:  0表示鍵盤輸入  1表示標準輸出  2表示錯誤輸出  &表示後台執行  >>表示追加  >表示覆蓋寫 注意:  1、當在前台運行某個作業時,終端被該作業佔據;而在後台運行作業時,它不會佔據終端。可以使用&命令把作業放到後台執行。  2、需要使用者互動的命令不要放在後台執行,因為那樣子機器將會在那一直等待  3、作業在後台運行時,一樣會將結果輸出在螢幕上,幹擾你的正常工作。因此我們最好將輸出重新導向到某個檔案中 4、crond服務通過 chkconfig --list | grep cron 命令來查看cron服務的啟動情況:[root@***** home]# chkconfig --list | grep cron crond 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉我們可以看到,系統啟動層級如果是1-4,cron服務都會開機自動啟動的,我們可以通過如下命令來設定該服務的啟動項:  /sbin/service crond start  /sbin/service crond stop  /sbin/service crond restart  /sbin/service crond reload以上1-4行分別為啟動、停止、重啟服務和重新載入配置。要把cron設為在開機的時候自動啟動,在 /etc/rc.d/rc.local 指令碼中加入 /sbin/service crond start 即可。查看crontab服務狀態:service crond status 5、個人經驗總結  我們使用這個命令大多都是運行相關的指令檔,最常見的就是定時調用http請求進行資料擷取或者資料庫的備份等等。因此當我們自己所寫的指令檔中含有檔案引入時,最好採用絕對路徑,否則將會引入失敗從而導致定時任務失敗。  

(以上是自己的一些見解,若有不足或者錯誤的地方請各位指出)

 作者:那一葉隨風   http://www.cnblogs.com/phpstudy2015-6/

 原文地址:http://www.cnblogs.com/phpstudy2015-6/p/7534968.html

 聲明:本部落格文章為原創,只代表本人在工作學習中某一時間內總結的觀點或結論。轉載時請在文章頁面明顯位置給出原文連結

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.