系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux crontab命令使用實例

Linux crontab命令使用實例匯總(6)

時間:2014-12-31 17:58:55 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141231/33894.html 手機查看 評論

  命令:

  0 4 1 jan * /etc/init.d/smb restart

  實例15:每小時執(zhí)行/etc/cron.hourly目錄內(nèi)的腳本

  命令:

  01 * * * * root run-parts /etc/cron.hourly

  說明:

  run-parts這個參數(shù)了,如果去掉這個參數(shù)的話,后面就可以寫要運行的某個腳本名,而不是目錄名了

  四、使用注意事項

  1. 注意環(huán)境變量問題

  有時我們創(chuàng)建了一個crontab,但是這個任務(wù)卻無法自動執(zhí)行,而手動執(zhí)行這個任務(wù)卻沒有問題,這種情況一般是由于在crontab文件中沒有配置環(huán)境變量引起的。

  在crontab文件中定義多個調(diào)度任務(wù)時,需要特別注意的一個問題就是環(huán)境變量的設(shè)置,因為我們手動執(zhí)行某個任務(wù)時,是在當(dāng)前shell環(huán)境下進(jìn)行的,程序當(dāng)然能找到環(huán)境變量,而系統(tǒng)自動執(zhí)行任務(wù)調(diào)度時,是不會加載任何環(huán)境變量的,因此,就需要在crontab文件中指定任務(wù)運行所需的所有環(huán)境變量,這樣,系統(tǒng)執(zhí)行任務(wù)調(diào)度時就沒有問題了。

  不要假定cron知道所需要的特殊環(huán)境,它其實并不知道。所以你要保證在shelll腳本中提供所有必要的路徑和環(huán)境變量,除了一些自動設(shè)置的全局變量。所以注意如下3點:

  1)腳本中涉及文件路徑時寫全局路徑;

  2)腳本執(zhí)行要用到j(luò)ava或其他環(huán)境變量時,通過source命令引入環(huán)境變量,如:

  代碼如下:

  cat start_cbp.sh

  #!/bin/sh

  source /etc/profile

  export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf

  /usr/local/jboss-4.0.5/bin/run.sh -c mev &

  3)當(dāng)手動執(zhí)行腳本OK,但是crontab死活不執(zhí)行時。這時必須大膽懷疑是環(huán)境變量惹的禍,并可以嘗試在crontab中直接引入環(huán)境變量解決問題。如:

  代碼如下:

  0 * * * * 。 /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

  2. 注意清理系統(tǒng)用戶的郵件日志

  每條任務(wù)調(diào)度執(zhí)行完畢,系統(tǒng)都會將任務(wù)輸出信息通過電子郵件的形式發(fā)送給當(dāng)前系統(tǒng)用戶,這樣日積月累,日志信息會非常大,可能會影響系統(tǒng)的正常運行,因此,將每條任務(wù)進(jìn)行重定向處理非常重要。

  例如,可以在crontab文件中設(shè)置如下形式,忽略日志輸出:

  0 */3 * * * /usr/local/apache2/apachectl restart 》/dev/null 2》&1

  “/dev/null 2》&1”表示先將標(biāo)準(zhǔn)輸出重定向到/dev/null,然后將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯誤也會重定向到/dev/null,這樣日志輸出問題就解決了。

  3. 系統(tǒng)級任務(wù)調(diào)度與用戶級任務(wù)調(diào)度

  系統(tǒng)級任務(wù)調(diào)度主要完成系統(tǒng)的一些維護操作,用戶級任務(wù)調(diào)度主要完成用戶自定義的一些任務(wù),可以將用戶級任務(wù)調(diào)度放到系統(tǒng)級任務(wù)調(diào)度來完成(不建議這么做),但是反過來卻不行,root用戶的任務(wù)調(diào)度操作可以通過“crontab –uroot –e”來設(shè)置,也可以將調(diào)度任務(wù)直接寫入/etc/crontab文件,需要注意的是,如果要定義一個定時重啟系統(tǒng)的任務(wù),就必須將任務(wù)放到/etc/crontab文件,即使在root用戶下創(chuàng)建一個定時重啟系統(tǒng)的任務(wù)也是無效的。

  4. 其他注意事項

  新創(chuàng)建的cron job,不會馬上執(zhí)行,至少要過2分鐘才執(zhí)行。如果重啟cron則馬上執(zhí)行。

  當(dāng)crontab突然失效時(詳見系統(tǒng)之家Linux crontab出現(xiàn)BAD FILE MODE錯誤該怎么辦?),可以嘗試/etc/init.d/crond restart解決問題。或者查看日志看某個job有沒有執(zhí)行/報錯tail -f /var/log/cron。

  千萬別亂運行crontab -r。它從Crontab目錄(/var/spool/cron)中刪除用戶的Crontab文件。刪除了該用戶的所有crontab都沒了。

  在crontab中%是有特殊含義的,表示換行的意思。如果要用的話必須進(jìn)行轉(zhuǎn)義\%,如經(jīng)常用的date ‘+%Y%m%d’在crontab里是不會執(zhí)行的,應(yīng)該換成date ‘+\%Y\%m\%d’。

  上面就是Linux下使用crontab命令的方法介紹了,該命令使用前需要先安裝crontab服務(wù),除了crontab命令的用法,本文還介紹了如何創(chuàng)建、編輯、刪除crontab文件的方法,你學(xué)會了嗎?

標(biāo)簽 命令 crontab

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄