Java 如何通过shell在远程服务器上同时在Tomcat上部署多个war文件?
我们在其中一台服务器上运行构建,我们将war分别复制到5台远程服务器上,并将ssh复制到这些服务器上,然后手动部署war。我正在寻找一种方法,通过运行shell脚本,我们可以同时部署所有5个war文件Java 如何通过shell在远程服务器上同时在Tomcat上部署多个war文件?,java,linux,shell,tomcat7,Java,Linux,Shell,Tomcat7,我们在其中一台服务器上运行构建,我们将war分别复制到5台远程服务器上,并将ssh复制到这些服务器上,然后手动部署war。我正在寻找一种方法,通过运行shell脚本,我们可以同时部署所有5个war文件 scp 123.war xyzserver:~/. ssh xyzserver -t “ sudo su sudo /etc/init.d/tomcat7 stop rm -fr /usr/share/tomcat7/webapps/123* cp ./xyz.war /usr/s
scp 123.war xyzserver:~/.
ssh xyzserver -t “
sudo su
sudo /etc/init.d/tomcat7 stop
rm -fr /usr/share/tomcat7/webapps/123*
cp ./xyz.war /usr/share/tomcat7/webapps/
sudo /etc/init.d/tomcat7 start”
exit
像这样的东西有用吗?我不确定cp是否会等到tomcat停止?有更好的方法吗?在服务器上,您可以在sudo cron上运行一个进程,监视目录中的war文件,并执行停止Tomcat、取消部署、部署和启动Tomcat的命令。然后,您可以将scp脚本编写到“监视”文件夹中 在服务器上创建bash脚本以检查文件:
if [ "$(ls -A ${WATCHED_DIR})" ]; then
/etc/init.d/tomcat7 stop
rm -fr /usr/share/tomcat7/webapps/${WEBAPP_NAME}
mv ${WATCHED_DIR}/${WEBAPP_NAME}.war /usr/share/tomcat7/webapps/
chown -R tomcat:tomcat /usr/share/tomcat7/webapps/${WEBAPP_NAME}
/etc/init.d/tomcat7 start
fi
将其添加到sudo crontab,使其以root用户身份运行
在客户端(生成war文件的地方),创建一个脚本,将文件复制到服务器上的该目录
scp ${WEBAPP_NAME}.war server1:${WATCHED_DIR}
scp ${WEBAPP_NAME}.war server2:${WATCHED_DIR}
scp ${WEBAPP_NAME}.war server3:${WATCHED_DIR}
scp ${WEBAPP_NAME}.war server4:${WATCHED_DIR}
scp ${WEBAPP_NAME}.war server5:${WATCHED_DIR}
---你能详细解释一下吗??我没有让你在每台服务器上创建一个bash/shell脚本,检查服务器上的文件夹中是否有war文件,如果有,将停止tomcat,删除当前的webapp,将新的war文件移动到webapp文件夹,然后启动tomcat。将其添加到sudo crontab中,以便随时以root用户身份运行。然后在客户端,制作一个单独的shell脚本,运行scp命令,将新的war推送到sudo的crontab.Wow.下运行的服务器端脚本监视的文件夹下的每个服务器。这似乎是一个很好的解决方案。谢谢@Brian Harman。让我试试这个