應用場景:服務器之間遠程傳輸文件
二 服務器免密登錄
四臺集羣服務器
服務器 | IP |
---|---|
A | 47.110.129.242 |
B | 172.16.214.209 |
C | 172.16.214.251 |
D | 172.16.214.252 |
生成服務器公鑰私鑰文件
在主機A上執行如下命令來生成配對密鑰(id_rsa,id_rsa.pub):
ssh-keygen -t rsa
執行過程中會停留直接按回車執行後後結果:
將A服務/home/user_01/.ssh/id_rsa.pub 公鑰文件複製到B服務對應的.shh 目錄並修改文件名authorized_keys
scp -P 22033 /home/user_01/.ssh/id_rsa.pub [email protected]:/home/user_01/.ssh/authorized_keys.pub
需要輸入服務器密碼
C,D服務重複B服務公鑰文件複製,參考上面指令
2 .驗證是否成功
重複上面文件scp 命令不需要輸入密碼
二 編輯shell腳本
- 創建文件傳輸文件scp.sh
touch scp.sh
- 編輯文件
vim scp.sh
scp -r -P 22033 /wwwroot/java/config [email protected]:/wwwroot/java/
scp -r -P 22033 /wwwroot/java/config [email protected]:/wwwroot/java/
scp -r -P 22033 /wwwroot/java/config [email protected]:/wwwroot/java/
#scp -P 22033 /wwwroot/java/tomcat-app/kxgzapp.war [email protected]:/wwwroot/java/tomcat-app/
#scp -P 22033 /wwwroot/java/tomcat-app/kxgzapp.war [email protected]:/wwwroot/java/tomcat-app/
#scp -P 22033 /wwwroot/java/tomcat-app/kxgzapp.war [email protected]:/wwwroot/java/tomcat-app/
sleep 5
#啓動服務器
/wwwroot/java/restart-tomcat.sh app kxgzapp
ssh -p 22033 172.16.214.209
/wwwroot/java/restart-tomcat.sh app kxgzapp
exit
ssh -p 22033 172.16.214.251
/wwwroot/java/restart-tomcat.sh app kxgzapp
exit
ssh -p 22033 172.16.214.252
/wwwroot/java/restart-tomcat.sh app kxgzapp
exit
- 對scp.sh文件授予執行權限
chmod 777 *.sh
- 最後執行sh文件
./scp.sh
6.tomcat 啓動備份
安裝 unzip
yum install -y unzip zip
vim restart-tomcat.sh
#!/bin/bash
tomcat_path=/wwwroot/java/tomcat-${1}
tomcat_name=tomcat-${1}
config=/wwwroot/java/config/
war_name=${2}
bak_path=/wwwroot/java/update/bg/
echo "begin get ${tomcat_name} pid"
tomcat8_id=$(ps -ef | grep ${tomcat_name} | grep -v grep | awk '{print $2}')
echo "${tomcat_name} pid:$tomcat8_id"
echo "begin kill ${tomcat_name} pid:$tomcat8_id"
kill -9 $tomcat8_id
sleep 3
echo "kill ${tomcat_name} pid:$tomcat8_id,success"
mv ${tomcat_path}/webapps/${war_name}.war ${bak_path}
rm -rf ${tomcat_path}/webapps/${war_name}
echo "remove war name ${war_name}"
mv /wwwroot/java/config/${war_name}/war/*.war ${tomcat_path}/webapps/${war_name}.war
# 解壓war包
unzip -oq ${tomcat_path}/webapps/${war_name}.war -d ${tomcat_path}/webapps/${war_name}
#修改配置
cp -r /wwwroot/java/config/${war_name}/config/* ${tomcat_path}/webapps/${war_name}/WEB-INF/classes
sleep 4
#啓動tomcat
${tomcat_path}/bin/startup.sh
echo "runing tomcat ..."
tomcat8_id=$(ps -ef | grep ${tomcat_name} | grep -v grep | awk '{print $2}')
echo "now ${tomcat_name} pid:$tomcat8_id"
sleep 4
tail -f ${tomcat_path}/logs/catalina.out
運行腳本
./restart-tomcat.sh app kxgzapp