posts - 188,comments - 176,trackbacks - 0

          下面就介紹一下在我們開發(fā)過程中經(jīng)常要用到的crontab命令,以及一些基本的定時任務(wù)文件的書寫規(guī)則。

          名稱 : crontab
          使用權(quán)限 : 所有使用者
          使用方式 :
              crontab  filecrontab [ -u user ] [ -u user ] { -l | -r | -e } 

          說明 :
              crontab 是用來讓使用者在固定時間或固定間隔執(zhí)行程式之用,換句話說,也就是類似使用者的時程表。

              -u user : 是指設(shè)定指定 user 的時程表,這個前提是你必須要有其權(quán)限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user的話,就是表示設(shè)定自己的時程表。

          參數(shù) : 
              -e : 執(zhí)行文字編輯器來設(shè)定時程表,內(nèi)定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設(shè)定 VISUAL 環(huán)境變數(shù)來指定使用那個文字編輯器(比如說 setenv VISUAL joe) 
              注:crontab -e后,會自動將添加的定時任務(wù)文件存到/var/spool/cron/tabs/zxin10文件中去(zxin10是用戶名,表示在當(dāng)前用戶下設(shè)置定時任務(wù))
              -r : 刪除目前的時程表
              -l : 列出目前的時程表

          時程表的格式如下 :
              f1 f2 f3 f4 f5 program
              其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執(zhí)行的程式。
              當(dāng) f1 為 * 時表示每分鐘都要執(zhí)行 program,f2 為 * 時表示每小時都要執(zhí)行程式,其余類推
              當(dāng) f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內(nèi)要執(zhí)行,f2 為 a-b 時表示從第 a 到第 b 小時都要執(zhí)行,其余類推
              當(dāng) f1 為 */n 時表示每 n 分鐘個時間間隔執(zhí)行一次,f2 為 */n 表示每 n 小時個時間間隔執(zhí)行一次,其余類推
              當(dāng) f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執(zhí)行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執(zhí)行,其余類推
             
              使用者也可以將所有的設(shè)定先存放在檔案 file 中,用 crontab file 的方式來設(shè)定時程表。
              使用方法:
              用vi編輯一個文件cronfile,然后在這個文件中輸入格式良好的時程表。編輯完成后,保存并退出。
              在命令行輸入
              zxin10@linux: crontab cronfile
              這樣就將cronfile文件提交給cron進(jìn)程,同時,新創(chuàng)建cronfile的一個副本已經(jīng)被放在/var/spool/cron目錄中,文件名就是用戶名。
              注:crontab cronfile操作后會將原來存在/var/spool/cron目錄下用戶名的文件中的信息覆蓋掉。

               
          crontab -e 和 crontab file使用時候需要注意的:

          test.sh的定時任務(wù)命令格式
          0 0 1 * * /home/zxin10/task/test.sh >> test.log


          【新增定時任務(wù)】
          crontab 
          -e 編輯中加入:
          0 0 1 * * /home/zxin10/task/test.sh >> test.log

          當(dāng)OS重啟后,再
          crontab 
          -
          test.sh腳本的定時任務(wù)命令會丟失

          為了防止這種情況:
          先建立一個如mytabs的文件
          vi mytabs 
          編輯后加入:
          0 0 1 * * /home/zxin10/task/test.sh >> test.log

          再執(zhí)行crontab mytabs
          將文件mytabs中的test.sh腳本的定時任務(wù)加入到crontab中

          crontab 
          -l可以查詢到新增的tesh.sh定時任務(wù),系統(tǒng)重啟后,test.sh腳本的定時任務(wù)也不會丟失。

          【清理定時任務(wù)】
          vi mytabs文件
          將其中需要的任務(wù)test.sh手工刪除,并保存退出

          再執(zhí)行crontab mytabs,系統(tǒng)會將刪除腳本test.sh后的mytabs文件信息重新加入

          到crontab中

          crontab 
          -l 則查詢不到刪除的test.sh腳本的定時任務(wù)


          【定時任務(wù)消失】
          當(dāng)用crontab 
          -e 編輯crontab的定時任務(wù)test.sh

          crontab 
          -l可以查詢得到腳本test.sh的定時任務(wù)命令

          但當(dāng)執(zhí)行crontab mytabs后,系統(tǒng)會將mytabs文件中的定時腳本重新加到crontab中,如果mytabs文件中沒有test.sh的定時任務(wù)

          則執(zhí)行crontab 
          -l 就查詢不到腳本test.sh的定時任務(wù)





             
          注意:    當(dāng)程式在你所指定的時間執(zhí)行后,系統(tǒng)會寄一封信給你,顯示該程式執(zhí)行的內(nèi)容,若是你不希望收到這樣的信,請在每一行空一格之后加上>/dev/null 2>&1 即可。

          posted on 2008-03-27 20:47 cheng 閱讀(2249) 評論(1)  編輯  收藏 所屬分類: Unix/Linux

          FeedBack:
          # re: linux下的crontab定時命令 [未登錄]
          2008-03-27 21:47 | yanyan
          分時日月周  回復(fù)  更多評論
            
          主站蜘蛛池模板: 正镶白旗| 岫岩| 灵武市| 加查县| 陵川县| 中山市| 尼勒克县| 马鞍山市| 通榆县| 塔河县| 南陵县| 泰安市| 肥东县| 安丘市| 灵丘县| 防城港市| 新安县| 海晏县| 十堰市| 宁河县| 信宜市| 巴彦淖尔市| 山阳县| 沈阳市| 江永县| 蓝田县| 大兴区| 武陟县| 安岳县| 雷山县| 江城| 乌鲁木齐县| 鄂尔多斯市| 永康市| 阳春市| 卢氏县| 大石桥市| 友谊县| 安西县| 临高县| 平陆县|