Linux服务器中简单脚本命令实现应用的备份与回滚 | 您所在的位置:网站首页 › linux备份文件夹脚本 › Linux服务器中简单脚本命令实现应用的备份与回滚 |
1.引言
在web项目中大多数还放在Tomcat中。上线升级前,会先备份一下原已上线的项目代码,一般会先切换到项目所在的目录(例如Tomcat下的webapps中的具体应用:apache-tomcat/webapps/app),然后再通过tar、jar等命令备份项目的代码;当项目有问题时,首先删掉刚刚上线升级的代码,再通过解压备份文件来实现代码的回滚。本文通过对这些操作简单的封装,即通过linux自定义脚本命令,进而实现上述的操作。 2.实现1、首先进入用户的目录找到配置文件.bash_profile(该配置文件是隐藏的文件可以通过ls 的-a才可以看到到),然后进入配置文件 2、编辑配置文件bash_profile的内容 (1)通过添加下面的命令实现快速定位到要备份的目录名下(主要回滚时、或增量更新时文件更新时使用) alias app1web='cd /home/app/apache-tomcat-7.0.78/webapps/APP1'(2)通过添加下面的命令实现快速的项目备份 backupapp1() { DATETIME=`date "+%Y%m%d%H%M%S"`; HOSTNAME=`hostname`; cd /home/app/apache-tomcat-7.0.78/webapps/APP1; jar -cvf /backups/app/APP1_BACKUP_${DATETIME}_${HOSTNAME}.war ./* echo "app1 backup ok....." cd -; }(3)补存 为了有更好的阅读性,当通过命令编辑器(例如第三方的Xsell等工具)打开命令行时,可以通过下面的命令填写有关备注(例如写一些该用户下部署了那些具体的应用、注意事项等) export LANG=en_US.UTF-8 echo "###########################################################################" echo "# #" echo "# UAT 测试环境 - #" echo "# #" echo "# APP1 XXXXXXXXXX系统 #" echo "# APP2 XXXXXXXXXX系统 #" echo "# APP3 XXXXXXXXXX系统 #" echo "# #" echo "###########################################################################"编写的脚本效果如下 3、操作 通过第三方工具打开命令行窗口 (1)备份已上线的应用,通过自定义命令(backupapp1) (2)应用更新确认,通过自定义命令(app1web)切换到应用的根目录,再通过ll -lt查看文件是否更新 (3)数据回滚 切换到切换到应用的根目录(app1web),删掉更新后的应用然后通过命令回滚(这里也可以自定义个命令,由于回滚用的相对较少,这里就不在使用了) jar -xvf /backups/app/APP1_BACKUP_${DATETIME}_${HOSTNAME}.war案例截图 配置文件.bash_profile和.bashrc的区别(详见https://www.cnblogs.com/kevingrace/p/8072860.html) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件. ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取. ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
|
CopyRight 2018-2019 实验室设备网 版权所有 |