项目组用Myeclipse开发一个JavaWeb项目,每天都要发布新版本到测试服务器的Tomcat。每次都要先导出WAR包,然后上传到服务器指定目录,接着远程登录到服务器上停止Tomcat,删除Tomcat的日志文件、临时文件,webapps下的老的WAR包,然后拷贝新的WAR包至webapps,接着再重启Tomcat。每天都干这个事觉得很繁琐,所以写了一套批处理,每天发布时只要双击一个bat文件,就全自动搞定上述过程!
cd C:UsersfhWorkspaces"MyEclipse 9"Tradeweb
del /s /q Trade.war
jar -cvf Trade.war *
::del /s /q \192.168.0.180c$fhTrade.war
::xcopy C:UsersfhWorkspaces"MyEclipse 9"TradewebTrade.war \192.168.0.180c$fh
Rem 本来是用共享目录方式下载/删除服务器指定目录的WAR包,但发现此法有时候受网络影响,不稳定;所以改成ftp方式
ftp -s:C:UsersfhDesktopserver180.ftp -A
Rem 调用远程服务,远程部署并重启Tomcat服务器
start cmd.exe ::启动一个 CMD 终端
cscript //nologo C:UsersfhDesktoptelnet-192.168.0.180.vbs ::调用脚本文件
echo 60秒以后,尝试访问可能已经启动完毕后的系统
for /l %%a in (60,-1,0) do ping -n 2 127.1>nul&cls&echo %%a
explorer.exe http://192.168.0.180/Trade/login.jsp
open 192.168.0.180
binary
cd /
delete Trade.war
put C:UsersfhWorkspaces"MyEclipse 9"TradewebTrade.war
bye
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys"telnet.exe 192.168.0.180{ENTER}"'执行的命令,字符 “~”代表回车
WScript.Sleep 1000 '延迟 1000
sh.SendKeys"y{ENTER}"
WScript.Sleep 1000
sh.SendKeys"administrator{ENTER}"
WScript.Sleep 1000
sh.SendKeys"db2admin{ENTER}"
WScript.Sleep 1000
sh.SendKeys"cd{ENTER}"
sh.SendKeys"cd fh{ENTER}"
sh.SendKeys"deploy.bat{ENTER}"
WScript.Sleep 1000
@echo off
Rem --------现在开始执行服务器端的deploy.bat文件,重新部署服务器-------------
Rem 停止Tomcat服务器
net stop Tomcat6
echo 等待10秒,让服务器完全停止下来
for /l %%a in (10,-1,0) do ping -n 2 127.1>nul&cls&echo %%a
Rem 删除Tomcat目录中的webapps/Trade.war、Trade文件夹, logs/*.log 、 logs/trade 、work/Catalina文件夹
del /s /q C:"Tomcat 6.0"webappsTrade.war
rd /s /q C:"Tomcat 6.0"webappsTrade
del /s /q C:"Tomcat 6.0"logs*.log
del /s /q C:"Tomcat 6.0"logstrade
rd /s /q C:"Tomcat 6.0"workCatalina
Rem 拷贝c:fhTrade.war至Tomcat服务器目录
xcopy C:fhTrade.war C:"Tomcat 6.0"webapps
Rem 启动Tomcat服务器
net start Tomcat6