本地升級文件
user="user"
iparray=("ip1","ip2")mv /home/hwt/workspacej2ee/wmscopy/wms/admin/target/wms-0.8.0-SNAPSHOT.war /home/hwt/workspacej2ee/wmscopy/wms/admin/target/web.war
for ip in ${iparray[*]}
do
#遠程複製
scp web.war root@$ip:/home/distribute/apache-tomcat-distribute/webapps/
sleep 10
ssh -t $user@$ip "/home/update/frontupdate.sh"
done
問題:ssh Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
nohup command_here & 注意:調用該命令後sleep 下,不然不起作用
問題3:必須輸入密碼才能遠程調用
無密碼上傳文件處理:
1、本地生成一對祕鑰文件(公鑰和私鑰);
$ ssh-keygen
#以上命令等價於 ssh-keygen -t rsa
#-t:指定密鑰的類型,默認爲SSH-2 的rsa類型;
運行上面的命令後,系統會出現一系列提示,可以一路回車。特別說明,其中有一個問題是,要不要對私鑰設置口令(passphrase),如果擔心私鑰的安全,可以設置一個。運行結束以後,會在 ~/.ssh/ 目錄下新生成兩個文件:id_rsa.pub和id_rsa。前者公鑰,後者是私鑰。
2、將公鑰傳送到遠程主機host上面;
$ ssh-copy-id user@host
經過以上兩步之後,就可以實現無密碼遠程登錄了(遠程主機將用戶的公鑰保存在~/.ssh/authorized_keys文件中)。
以上轉載:http://my.oschina.net/jean/blog/290461frontupdate.sh:
#升級站點數組
proarray=(tomcat1 tomcat2)
#遍歷數組
for data in ${proarray[@]}
do
echo "apache-tomcat-${data} update"
#抽取Tomcat進程號PID
pid=`ps -ef | grep apache-tomcat-${data}|grep -v 'grep' | awk '{print $2}'`
#測試當前進程是否處於活動狀態
test "$pid" != "" && kill $pid && echo "Stop apache-tomcat-${data} Successful!" || echo "Stop apache-tomcat-${data} Failed!"
echo "apache-tomcat-${data} shutdown"
echo "複製web.war"
rm -rf /home/apache-tomcat-${data}/webapps/web.war
cp /home/distribute/apache-tomcat-distribute/webapps/web.war /home/apache-tomcat-${data}/webapps/
echo "啓動apache-tomcat-${data}"
bash /home/update/updatebyone.sh ${data}
echo "apache-tomcat-${data}啓動結束"