日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

crontab 提示 command not found 解决方案

發布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 crontab 提示 command not found 解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
crontab 提示 command not found 解決方案

今天遇見一個問題,crontab的定時任務會報錯:java command not found,但是手動執行腳本一直能成功。

猜想是環境變量的問題。

在crontab里添加個打印環境變量的任務:

* * * * * echo $PATH

查看crontab日志 /var/log/cron

可以看到,path里只有 /usr/bin和/bin兩個目錄。

怪不得找不到java。

解決方案:

在shell腳本里加一行

source /etc/profile。

?

?

另轉一篇相關文章:http://xiachaofeng.iteye.com/blog/1405184

1.crontab與環境變量

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

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

2)腳本執行要用到java或其他環境變量時,通過source命令引入環境變量,如:
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)當手動執行腳本OK,但是crontab死活不執行時。這時必須大膽懷疑是環境變量惹的禍,并可以嘗試在crontab中直接引入環境變量解決問題。如:
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

2.其他應該注意的問題

1)新創建的cron job,不會馬上執行,至少要過2分鐘才執行。如果重啟cron則馬上執行。
2)每條 JOB 執行完畢之后,系統會自動將輸出發送郵件給當前系統用戶。日積月累,非常的多,甚至會撐爆整個系統。所以每條 JOB 命令后面進行重定向處理是非常必要的: >/dev/null 2>&1 。前提是對 Job 中的命令需要正常輸出已經作了一定的處理, 比如追加到某個特定日志文件。
3)當crontab突然失效時,可以嘗試/etc/init.d/crond restart解決問題。或者查看日志看某個job有沒有執行/報錯tail -f /var/log/cron。
4)千萬別亂運行crontab -r。它從Crontab目錄(/var/spool/cron)中刪除用戶的Crontab文件。刪除了該用戶的所有crontab都沒了。
5)在crontab中%是有特殊含義的,表示換行的意思。如果要用的話必須進行轉義\%,如經常用的date ‘+%Y%m%d’在crontab里是不會執行的,應該換成date ‘+\%Y\%m\%d’`。

3.rontab中的輸出配置

crontab中經常配置運行腳本輸出為:>/dev/null 2>&1,來避免crontab運行中有內容輸出。

shell命令的結果可以通過‘> ’的形式來定義輸出

/dev/null 代表空設備文件  

> 代表重定向到哪里,例如:echo "123" > /home/123.txt 

1 表示stdout標準輸出,系統默認值是1,所以">/dev/null"等同于"1>/dev/null"

2 表示stderr標準錯誤

  & 表示等同于的意思,2>&1,表示2的輸出重定向等同于1 

那么重定向輸出語句的含義:

1>/dev/null 首先表示標準輸出重定向到空設備文件,也就是不輸出任何信息到終端,不顯示任何信息。

2>&1 表示標準錯誤輸出重定向等同于標準輸出,因為之前標準輸出已經重定向到了空設備文件,所以標準錯誤輸出也重定向到空設備文件。

posted on 2016-08-10 18:11 yin.kh 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/yinkh/p/5757849.html

總結

以上是生活随笔為你收集整理的crontab 提示 command not found 解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。