tomcat批量升級

本地升級文件

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

我的JAVA_HOME是定義在/etc/profile 裏面的
略做研究之後發現結果如下:
    /etc/profile: 當用戶登錄時,該文件被執行.
    /etc/bashrc: 當bash shell被打開時,該文件被執行.
ssh作爲non-login方式進入,當然就無法觸發/etc/profile的執行了。
所以應該設置到/etc/bashrc裏面去.
其他的配置文件還有
    ~/.bash_profile
    ~/.bashrc
    ~/.bash_logout  
以上引用:http://blog.sina.com.cn/s/blog_64693fd40101eyyh.html

問題2:ssh 遠程調用frontupdate.sh 後,ssh不退出,tomcat有進程,ssh 退出,tomcat 直接關閉
使用nohub 命令如下,可以不掛斷運行
nohup command_here & 注意:調用該命令後sleep 下,不然不起作用
問題3:必須輸入密碼才能遠程調用

無密碼上傳文件處理:

1、本地生成一對祕鑰文件(公鑰和私鑰);

$ ssh-keygen

#以上命令等價於 ssh-keygen -t rsa

#-t:指定密鑰的類型,默認爲SSH-2 的rsa類型;

運行上面的命令後,系統會出現一系列提示,可以一路回車。特別說明,其中有一個問題是,要不要對私鑰設置口令(passphrase),如果擔心私鑰的安全,可以設置一個。運行結束以後,會在 ~/.ssh/ 目錄下新生成兩個文件:id_rsa.pubid_rsa。前者公鑰,後者是私鑰。

2、將公鑰傳送到遠程主機host上面;

$ ssh-copy-id user@host

經過以上兩步之後,就可以實現無密碼遠程登錄了(遠程主機將用戶的公鑰保存在~/.ssh/authorized_keys文件中)。

以上轉載:http://my.oschina.net/jean/blog/290461

frontupdate.sh:

#!/bin/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}啓動結束"
updatebyone.sh 這個文件不公開。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章