linux定時任務系統cron使用總結
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
你也可以將這個服務在系統啟動的時候自動啟動:
在/etc/rc.d/rc.local這個指令碼的末尾加上:
/sbin/service crond start
每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成乙個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過乙份鐘讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動cron服務。
如果直接編輯,就會遇到如下的問題,ant 命令在cron裡無效,但在命令列裡有作用
我在/etc/crontab裡面寫了這麼一段:
00 20 * * * root ant -file /home/ant/antcvs/build.xml
用來自動執行ant命令,可是沒有反應,第二天一看,並沒有執行
/etc/crontab
00 21 * * * root perl /home/devtest/work/deploy.pl -r webserver/branch -d webdesign/gagmedata/devgamedata -b 1.2.10 >> /home/devtest/work/deploy.log 2>&1
記住2>&1很有用,會列印出一些標準輸入輸出中的異常資訊
新增內容:crontab -e ,不需要再加root 賬戶名
00 21 * * * perl /home/devtest/work/deploy.pl -r webserver/branch -d webdesign/gagmedata/devgamedata -b 1.2.10 >> /home/devtest/work/deploy.log 2>&1
為21點去執行這個命令列,執行列印結果追加到deploy.log 需要改動的是大分支版本號1.2.10
. tail -f /var/log/cron 檢視crontab的執行日誌
如果加入cron任務的命令列或者程式有用到環境變數的,比如ant,perl,svn,則需要在最開始加入環境變數
shell=/bin/bash
path=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/j2sdk1.4//bin [最好把全部的從環境變數中拷貝過來]
mailto=root
home=/root
發現svn在cron裡也無效,但命令列中有效,查得原因如下:
1.需要在svn 命令裡加password username
svn up $root/$branch --username jiangguilong --password 6543244
2.編碼的問題,則需要在環境變數中lang=zh_cn.utf-8
linux定時任務cron
一 cron格式 其格式如下 minute hour day month dayofweek command 分鐘 小時 天 月 天每星期 命令 比如 15 ls 表示每15分鐘執行一次ls 即每個小時的第0 15 30 45 60分鐘執行ls命令 25 8 11 ls 每天8 11點的第25分鐘執...
Cron 定時任務
一般系統都會有定時任務存在,比如訂單系統,會根據定時任務來實時同步訂單狀態,同步交易狀態等等。定時任務可以使用quartz 定時任務,也可以自己寫乙個任務排程系統,只要能實現功能就可以。下面我簡單介紹一下quartz 定時任務配置,需要配置三個bean,分別為 quartz,trigger,sche...
Cron定時任務
完整的是七位 秒 分鐘 小時 日 月 星期 年 有的沒有這個年 0 0 12 每天中午12點觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 2005 2005年的每天上午10 15觸發 0 14 在每天下午...