linux crontab定時(shí)任務(wù)執(zhí)行Kettle或者別的sh錯(cuò)誤解決方法

摘要

很多時(shí)候我們需要使用linux下的crontab來執(zhí)行一些定時(shí)任務(wù)。平時(shí)研究linux比較少,今天把遇到的問題整理了下分享。

crontab簡單介紹

1.常用命令
crontab -e 編輯添加定時(shí)信息
crontab -l 列表出當(dāng)前所有的定時(shí)任務(wù)
crontab -r 刪除任務(wù)
2.使用實(shí)例
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |

          • user-name command to be executed

分 時(shí) 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
第6列要運(yùn)行的命令

實(shí)例1:每1分鐘執(zhí)行一次myCommand

*/1  *  *  *  * user-name command to be executed  
* * * * * myCommand ---這個(gè)沒實(shí)際測試過

實(shí)例2:每小時(shí)的第3和第15分鐘執(zhí)行

3,15 * * * * myCommand

實(shí)例3:在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 * * * myCommand

實(shí)例4:每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 */2  *  * myCommand

實(shí)例5:每周一上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 * * 1 myCommand

**實(shí)例6:每晚的21:30重啟
**

30 21 * * * /etc/init.d/smb restart

實(shí)例7:每月1、10、22日的4 : 45重啟

45 4 1,10,22 * * /etc/init.d/smb restart

實(shí)例8:每周六、周日的1 : 10重啟

10 1 * * 6,0 /etc/init.d/smb restart

實(shí)例9:每天18 : 00至23 : 00之間每隔30分鐘重啟

0,30 18-23 * * * /etc/init.d/smb restart

實(shí)例10:每星期六的晚上11 : 00 pm重啟

0 23 * * 6 /etc/init.d/smb restart

實(shí)例11:每一小時(shí)重啟

* */1 * * * /etc/init.d/smb restart

實(shí)例12:晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟

0 23-7 * * * /etc/init.d/smb restart

以上實(shí)例中我們很容易分析出這里包含了那些符號(hào)來分割時(shí)間。下面將是非常重要 注意環(huán)境變量問題

我們創(chuàng)建了一個(gè)crontab,但是這個(gè)任務(wù)卻無法自動(dòng)執(zhí)行,而手動(dòng)執(zhí)行這個(gè)任務(wù)卻沒有問題,這種情況一般是由于在crontab文件中沒有配置環(huán)境變量引起的。
crontab不屬于任何用戶,所以我們在腳本執(zhí)行要用到j(luò)ava或其他環(huán)境變量,腳本中涉及文件路徑時(shí)寫全局路徑。
test.sh,可以這樣創(chuàng)建一個(gè)sh文件來執(zhí)行。

!/bin/sh
source /etc/profile
export RUN_CONF=/home/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &

或者可嘗試在crontab中直接引入環(huán)境變量解決問題

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

可以在sh腳本中加入 source /etc/profile 來配置環(huán)境變量。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容