应用场景:服务器之间远程传输文件
二 服务器免密登录
四台集群服务器
服务器 | 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