最近由于部署tomcat较多,完全使用手工方式部署 步骤重复而且容易出错,因此使用shell脚本完成此功能。
主要有几种方式
1.采用主机免密登录
2.使用sshpass 实现
3.使用expect实现
我这边主要采用第二种实现方式
下载sshpass链接 https://sourceforge.net/projects/sshpass/
$ tar -zxvf sshpass-1.05.tar.gz
$ cd sshpass-1.05
$ ./configure --prefix=/home/test/sshpass
$ make
$ make install
$ cp /home/test//sshpass /bin/sshpass /usr/bin/
如果是普通用户权限可以将该执行路径加入环境变量中
编写脚本 startAll.sh
#!/usr/bin
kill -9 $(ps -aef | grep tomcat | grep -v grep | awk '{print $2}')
cd /tomcat/bin
./startup.sh
#登录远程主机
#复制文件
sshpass -p 密码 scp -P 22 /tomcat/webapps/cspgs.war test2@192.168.0.1:/home
sleep 10
执行主机上可执行文件
sshpass -p 密码 ssh -p 22 test2@192.168.0.1 "/home/./start-1.sh"