Linux服务器中简单脚本命令实现应用的备份与回滚 您所在的位置:网站首页 linux备份文件夹脚本 Linux服务器中简单脚本命令实现应用的备份与回滚

Linux服务器中简单脚本命令实现应用的备份与回滚

2023-10-23 17:51| 来源: 网络整理| 查看: 265

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

案例截图

4、扩展

配置文件.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 实验室设备网 版权所有