当前位置:网站首页>Solving SCP command secret free login in shell script

Solving SCP command secret free login in shell script

2022-04-22 21:18:00 Rookie zyy

Application scenarios : Remote transfer of files between servers

Two Server password free login

Four cluster servers

The server IP
A 47.110.129.242
B 172.16.214.209
C 172.16.214.251
D 172.16.214.252

Generate server public key and private key file
Host computer A Execute the following command to generate the pairing key (id_rsa,id_rsa.pub):

ssh-keygen -t rsa

During execution, you will stay and directly press enter to execute the result :
 Insert picture description here
take A service /home/user_01/.ssh/id_rsa.pub Copy the public key file to B The service corresponds to .shh Directory and modify the file name authorized_keys

 scp -P 22033  /home/user_01/.ssh/id_rsa.pub  [email protected]:/home/user_01/.ssh/authorized_keys.pub

You need to enter the server password
C,D Service duplication B Service public key file replication , Refer to the instructions above

2 . Verify success
Repeat the above file scp The command does not require a password

Two edit shell Script
  1. Create a file transfer file scp.sh
touch scp.sh
  1. Edit the file
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

# Start the server 
/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

  1. Yes scp.sh Grant execution permission to the file
chmod 777 *.sh
  1. Finally, execute sh file
./scp.sh

6.tomcat Start backup

install 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

#  decompression war package 
unzip -oq ${
    tomcat_path}/webapps/${
    war_name}.war -d ${
    tomcat_path}/webapps/${
    war_name}
# Modify the configuration 
cp -r /wwwroot/java/config/${
    war_name}/config/* ${
    tomcat_path}/webapps/${
    war_name}/WEB-INF/classes

sleep 4

# start-up 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

Run script

./restart-tomcat.sh app kxgzapp

Just killing the process can use

$ ps -ef | grep pro_name | grep -v grep | awk '{print $2}' | xargs kill -15

版权声明
本文为[Rookie zyy]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204222115302936.html