linux定時任務crond export變量問題

linux定時任務crond export變量問題java

1)我寫了一個重啓resin的腳本,因爲業務緣由,須要定時在某一個時間重啓下resin服務器,因而就在
crontab裏配置了以下內容:linux

50 17 * * 1-5 root /usr/local/bin/resin_restart.sh

其中,resin_restart.sh內容以下:nginx

#!/bin/sh
/usr/local/bin/xxresin_stop.sh
/usr/local/bin/xxresin_start.sh

2)有問題的時刻到來了,服務器雖然定時起來了,可是卻報了以下錯誤:shell

Resin can't load com.sun.tools.javac.Main.  Usually this means that the JDK tools.jar is missing from the classpath, 
possibly because of using a JRE instead of the JDK.  
You can either add tools.jar to the classpath or change the compiler to an external one with <java compiler='javac'/> or jikes.

可是,明明已經在profile裏配置了環境變量,爲啥還找不到呢。折騰了需求沒有搞定。服務器

3)後來通過測試和在google上尋找得知:測試

因爲export變量問題致使:具體爲,crontab執行shell時只能識別爲數很少的系統環境變量,

普通環境變量通常是沒法識別的,若是在編寫的腳本中須要使用變量,

最好使用export從新聲明下該變量,

以確保腳本正確執行。之後做爲一個開發基本規範寫上。

4)而後我在resin重啓腳本里從新定義了下環境變量,腳本以下:this

#!/bin/sh
#下面就是環境變量定義

JAVA_HOME="/opt/jdk1.6.0_18"
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/nginx-0.7.61/sbin:/opt/jdk1.6.0_18/bin:/opt/resin-3.0.25/bin:$PATH
export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CLASSPATH
/usr/local/bin/xxresin_stop.sh
/usr/local/bin/xxresin_start.sh

5)通過測試,定時任務此時順利重啓google

相關文章
相關標籤/搜索