备份当前执行A项目与B项目
来源:互联网 发布:北京淘宝培训一对一 编辑:程序博客网 时间:2024/06/06 10:47
root@ubuntu:/tmp# cat update.sh #!/bin/shdirName=`date +%Y%m%d`#以时间年月日命令文件夹bakAbsolutePath=/mnt/bak/$dirName#备份绝对路径projectBPath=/data/qd/apache-tomcat-7.0.39-projectBprojectAPath=/data/qd/apache-tomcat-7.0.39-projectA#对应A项目与B项目存放路径if [ ! -d "$bakAbsolutePath" ]; then mkdir -p $bakAbsolutePath #备份绝对路径不存在情况下,进行文件夹创建fiif [ $# -ne 1 ]; then echo "Usage: update.sh {projectA|projectB}" exit #备份fiif [ "$1" = "projectA" ]; then $projectAPath/bin/shutdown.sh >/dev/null 2>&1 echo "Shutdown the projectA" #备份前先停止当前运行 sleep 3 count=`ps -ef |grep projectA |grep -v grep |grep -v update.sh| wc -l` #打印出所有进行-过滤出项目A(去掉使用grep与update.sh参数情况) if [ $count -ne 0 ]; then kill -9 `ps -ef |grep projectA|grep -v grep |grep -v update.sh |awk '{ print $2 }'` #统计数不等于0,所以没有停止掉,此时采用kill -9 强制停止 fi ls -A $projectAPath/webapps/projectA* >/dev/null 2>&1 isExist=`echo $?` if [ $isExist -eq 0 ]; then mv -f --backup=t $projectAPath/webapps/projectA* $bakAbsolutePath fi #进行备份(--backup=t参数代表如果文件中已经有相同备份文件,如同一天备份多次,备份的名称将累加~.1~ echo $projectAPath elif [ $1 = "projectB" ]; then $projectBPath/bin/shutdown.sh >/dev/null 2>&1 echo "Shutdown the projectB" sleep 3 count=`ps -ef |grep projectB |grep -v grep |grep -v update.sh| wc -l` if [ $count -ne 0 ]; then kill -9 `ps -ef |grep projectB |grep -v grep |grep -v update.sh |awk '{ print $2 }'` fi ls -A $projectBPath/webapps/projectB* >/dev/null 2>&1 isExist=`echo $?` if [ $isExist -eq 0 ]; then mv -f --backup=t $projectBPath/webapps/projectB* $bakAbsolutePath fi echo $projectBPathelse echo "Usage: update.sh {projectA|projectB}" exitfiecho "backup complete"
简易启动与关闭
root@ubuntu:/tmp# cat service.sh #!/bin/shprojectBPath=/data/qd/apache-tomcat-7.0.39-projectBprojectAPath=/data/qd/apache-tomcat-7.0.39-projectAprojectA_start(){ count=`ps -ef |grep projectA |grep -v grep |grep -v service.sh| wc -l` if [ $count -ne 0 ]; then #kill -9 `ps -ef |grep projectA|grep -v grep |grep -v service.sh |awk '{ print $2 }'` echo "projectA exist" exit else $projectAPath/bin/startup.sh >/dev/null 2>&1 echo "Start the projectA" sleep 3 fi}projectA_stop(){ $projectAPath/bin/shutdown.sh >/dev/null 2>&1 sleep 3 count=`ps -ef |grep projectA |grep -v grep |grep -v service.sh| wc -l` if [ $count -ne 0 ]; then kill -9 `ps -ef |grep projectA|grep -v grep |grep -v service.sh |awk '{ print $2 }'` fi echo "Shutdown the projectA"}projectB_start(){ count=`ps -ef |grep projectB |grep -v grep |grep -v service.sh| wc -l` if [ $count -ne 0 ]; then echo "projectB exist" exit else $projectBPath/bin/startup.sh >/dev/null 2>&1 echo "Start the projectB" sleep 3 fi}projectB_stop(){ $projectBPath/bin/shutdown.sh >/dev/null 2>&1 sleep 3 count=`ps -ef |grep projectB |grep -v grep |grep -v service.sh| wc -l` if [ $count -ne 0 ]; then kill -9 `ps -ef |grep projectB |grep -v grep |grep -v service.sh |awk '{ print $2 }'` fi echo "Shutdown the projectB"}projectA_restart(){ projectA_stop projectA_start}projectB_restart(){ projectB_stop projectB_start}if [ $# -ne 2 ]; then echo "Usage: update.sh {projectA|projectB} {start|stop|restart}" exitfiif [ "$1" = "projectA" ]; then if [ "$2" = start ]; then projectA_start elif [ "$2" = stop ]; then projectA_stop elif [ "$2" = restart ]; then projectA_restart else echo "$2 unknow" fi echo $projectAPathelif [ "$1" = "projectB" ]; then if [ "$2" = start ]; then projectB_start elif [ "$2" = stop ]; then projectB_stop elif [ "$2" = restart ]; then projectB_restart else echo "$2 unknow" fi echo $projectBPathelse echo "Usage: update.sh {projectA|projectB} {start|stop|restart}" exitfiroot@ubuntu:/tmp#
0 0
- 备份当前执行A项目与B项目
- 项目A 引入到项目B 在maven中引入另一个项目 项目A 的方法引入到项目B
- 项目三:输出星号图(a)(b)
- 61单片机项目 - 定时器Timer A/B
- J2EE中 A项目 链接B项目 注意点
- 第十周项目1程序填充与阅读(a+b)
- 复制A项目到B项目,作为B项目的子包报错:提示:R cannot be resolved to a variable
- B/S项目环境部署与配置
- thinkphp A()、R()方法不能跨项目调用与当前action名称相同的控制器的原因
- JIRA项目执行与管理方案
- 执行能力--执行项目
- C语言函数库atan2(a, b)与atan(a/b)的区别@项目简介:基于PSS序列(时域)估计小数倍频偏
- a && b 与 a|| b
- 第六周项目二(程序填空)---a和b
- 第39讲-项目二- n=a!+b!+c!
- 第5讲项目2-计算a+b
- 第三十九将项目四 n=a!+b!+c!
- A项目
- 300万数据的导入导出
- spring框架归纳
- _T含义 C++语言中“_T”
- iOS变长参数
- Android之数据保存--SharedPreference
- 备份当前执行A项目与B项目
- css-对齐
- TelephonyManager的介绍 & Android获取SIM卡信息、设备信息
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- GYM 101173 F.Free Figurines(贪心)
- web前端代码整理 字符串拼接 获取地址栏参数 ajax请求 时间戳
- Skynet基础入门例子详解(4)
- 静态链接之静态链接
- vue.js+vue-router+sea.js构建SPA应用