免密登录(A -> B)
1. 在A生成密钥对
ssh-keygen -t rsa -P ""
执行上述命令,一路回车,会在当前登录用户的home
目录下的.ssh
目录下生成id_rsa
和id_rsa.pub
两个文件,分别代表密钥对的私钥和公钥。
2. 拷贝A的公钥(id_rsa.pub)到B
这里拷贝到B
的root
用户home
目录下为例:
scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root
3. 登录B
拷贝A的id_rsa.pub
内容到.ssh
目录下的authorized_keys
文件中
cd /root
cat id_rsa.pub >> .ssh/authorized_keys
4. 此时在A中用SSH登录B或向B拷贝文件,不需要密码
ssh root@192.168.1.201
scp abc.txt root@192.168.1.201:/root
5. 快捷操作
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址
Tomcat shutdown.sh 不能关闭进程问题
1. 修改catalina.sh
找到 PRGDIR=`dirname "$PRG"`
这一行,在下面添加如下代码
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi
2. 修改shutdown.sh
文件的最后一行添加-force
参数
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
自动更新其它机器Tomcat下项目
将脚本文件放在服务器上授予可执行权限 chmod 777 auto-deploy.sh
前提是已配置了免密码登录
#!/bin/bash
# host ip list
list="ip1 ip2 ip3"
for ip in $list
do
# shutdown Tomcat
if [ "restart" = "$1" ];then
echo shutdown $ip;
ssh root@$ip "/data/tomcat80/bin/./shutdown.sh"
fi
# scp -30 minutes change files
for file in $(find /data/tomcat80/webapps/ROOT/ -type f -cmin -30)
do
echo scp $file to $ip;
pdir=$(dirname $file);
ssh root@$ip "[ -d $pdir ] && echo ok || mkdir -p $pdir";
scp $file root@$ip:${file//\$/\\\$};
done
# startup Tomcat
if [ "restart" = "$1" ];then
echo startup $ip;
ssh root@$ip "/data/tomcat80/bin/./startup.sh"
fi
done
网友评论