您的位置:首页 > 运维架构 > Shell

linux环境在tomcat启动或者停止后执行shell脚本,脚本内容备份图片文件夹

2017-07-28 11:11 891 查看
1如在tomcat启动或者停止后执行脚本

shutdown.sh和startup.sh脚本在执行后均会通过过exec命令调用catalina.sh脚本

调用语句如下:

call "%EXECUTABLE%" stop %CMD_LINE_ARGS%

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

所以我们只需要修改catalina.sh脚本,即可。

在catalina.sh脚本上部定义一个变量

在启动或者停止tomcat时,会走下边if语句,在里面修改变量即可
在尾部调用其他脚本即可

BAK_FLAG="stateless"elif [ "$1" = "start" ] ; then
BAK_FLAG="start"

elif [ "$1" = "stop" ] ; then
BAK_FLAG="stop"if [ "$BAK_FLAG" = "start" ] ; then
echo " 在tomcat启动后调用备份图片脚本 "
cd /usr/local/
./upload_pics.sh
echo " 调用备份图片脚本结束 "
fi


下边是图片备份脚本
#!/bin/sh
bakPath="/usr/local/upload_backup/"
filePathName=`date +%Y_%m_%d`
fileName=pics_`date +%Y_%m_%d.tar`

echo " 备份的路径及文件名为$bakPath$filePathName/$fileName "

sourceDir="/usr/local/upload"
echo " 备份文件路径是$sourceDir "

BACKUP_DIR="/usr/local/"

if [ ! -d "$bakPath" ]; then

echo "/usr/local/upload_backup"
mkdir  "$bakPath"
echo "$bakPath文件夹创建成功"

else

echo "$bakPath文件夹已经存在"

fi

if [ ! -d "$bakPath`date +%Y_%m_%d`" ]; then

echo "/usr/local/upload_backup"
mkdir  "$bakPath`date +%Y_%m_%d`"
echo "$filePathName文件夹成功"

else

echo "$filePathName文件夹已经存在"

fi

cd ${BACKUP_DIR}

BAK_FLAG=0
checkRead(){
if  [ $MAX_NO -ne 0 -a $MAX_NO -ne 1 ] ; then
actionRead
fi
}

actionRead(){
echo -n "是否备份已上传图片?是请输入1;否请输入0: "
read MAX_NO
checkRead
}

actionRead

if  [ $MAX_NO -eq 1 ] ; then
tar  -cvPf  $bakPath$filePathName/$fileName $sourceDir
fi


效果如下:

[root@iZ94776685oZ bin]# ./shutdown.sh

Using CATALINA_BASE: /usr/local/muzhike_manage_project

Using CATALINA_HOME: /usr/local/muzhike_manage_project

Using CATALINA_TMPDIR: /usr/local/muzhike_manage_project/temp

Using JRE_HOME: /usr/local/jdk1.8/jdk1.8.0_131/jre

Using CLASSPATH: /usr/local/muzhike_manage_project/bin/bootstrap.jar:/usr/local/muzhike_manage_project/bin/tomcat-juli.jar

[root@iZ94776685oZ bin]# ./startup.sh

Using CATALINA_BASE: /usr/local/muzhike_manage_project

Using CATALINA_HOME: /usr/local/muzhike_manage_project

Using CATALINA_TMPDIR: /usr/local/muzhike_manage_project/temp

Using JRE_HOME: /usr/local/jdk1.8/jdk1.8.0_131/jre

Using CLASSPATH: /usr/local/muzhike_manage_project/bin/bootstrap.jar:/usr/local/muzhike_manage_project/bin/tomcat-juli.jar

Tomcat started.

在tomcat启动后调用备份图片脚本

备份的路径及文件名为/usr/local/upload_backup/2017_07_28/pics_2017_07_28.tar

备份文件路径是/usr/local/upload

/usr/local/upload_backup/文件夹已经存在

2017_07_28文件夹已经存在

是否备份已上传图片?是请输入1;否请输入0: 1

/usr/local/upload/

/usr/local/upload/2017072616383325539.png

调用备份图片脚本结束

[root@iZ94776685oZ bin]#

下边是参考的网页或者播客
http://www.51testing.com/html/94/488194-845179.html   catalina.sh脚本的解释
http://blog.csdn.net/yun90/article/details/22787667   脚本调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息