标签:
最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终于腾出时间来做这件事,记录一下。
主要就是将生成的war发布到阿里云,这里不发布war,直接将tomcat中的工程下的文件拷贝到阿里云(其实war只是将这些文件压缩传输),然后修改配置文件
#!/bin/bash # 切换到tomcat发布目录,这个目录前面看起来比较诡异,就是因为使用的是babun cd /cygdrive/d/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps # 复制文件到阿里云服务器tomcat scp -r ./ test@xx.xxx.xxx.xx:/var/www/tomcat/webapps # 复制完成之后,登录阿里云 # 执行远程服务器上用户目录的脚本文件edit.shssh test@xx.xxx.xxx.xx ‘sh ~/edit.sh‘
好的,看到ssh免密码登录的用处了吧,在进行scp拷贝的时候不需要手动参与输入密码,在最后执行远程的服务器脚本的时候也一样,到目前为止貌似也没有用到很复杂的shell脚本语法,以前学过shell编程,因为没有用到,我也没有记录(每当这个时候我就觉得现在写博客是极其正确的)
上面脚本最后一句话就是执行远程服务器上的edit.sh,进行修改需要修改的配置文件
#!/bin/bash # 切换到app目录 cd /var/www/tomcat/webapps/app # 修改applicationContext-context.xml,修改数据库密码,因为本地和服务器不是同一个数据库,修改 sed -i -e ‘s/name="password" value="root"/name="password" value="xxxx"/‘ ./WEB-INF/applicationContext-context.xml # 修改config.properties sed -i ‘s/localhost:8080/xx.xxx.xxx.xx/‘ ./WEB-INF/classes/config.properties
# 修改日志存放目录
sed -i -e ‘12,12s+E://logs/log.log+/var/www/tomcat/logs/log.log+‘ -e ‘21,21s+E://logs/error.log+/var/www/tomcat7/logs/error.log+‘ ./WEB-INF/classes/log4j.properties
大功告成,已经初步实现了一键式部署,整个过程不要人参与
#!/bin/bash ## 注意 # 因为是调用shell命令,所以整个表达式都要用反引号包括 # 在运算符和表达式之间必须有空格 # 脚本中的变量命名和=之间不能有空格 value=`expr 2 + 2` # 使用$引用变量 echo $value
以上内容有参考http://c.biancheng.net/cpp/view/6999.html,其他详细内容暂时就不再深入了,还是需求驱动学习。
强大的叹为观止!!这个命令的提供我们不用打开文件就可以直接编辑文件,对于文中用到的几个用法加以记录
linux的强大之处不容置疑!
标签:
原文地址:http://www.cnblogs.com/sunshine-2015/p/5524648.html