免密登錄(A -> B)
1. 在A生成密鑰對
ssh-keygen -t rsa -P ""
執(zhí)行上述命令,一路回車兴溜,會在當前登錄用戶的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
內(nèi)容到.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
參數(shù)
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
自動更新其它機器Tomcat下項目
將腳本文件放在服務器上授予可執(zhí)行權限 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