设为首页 加入收藏

TOP

使用C和Shell实现远程Tomcat的重启备份脚本(二)
2014-11-24 08:08:00 来源: 作者: 【 】 浏览:2
Tags:使用 Shell 实现 远程 Tomcat 重启 备份 脚本
ame|grep -v "grep"|grep -v "$0" |awk '{print $2}'`

if ( [ -n "$tompid" ] );then



echo -e "\033[32m$Project_name启动成功\033[0m"



else



echo -e "\033[31m$Project_name启动失败,请重新执行一次命令\033[0m"



fi

;;



stop)
pidlist=`ps -ef|grep $Project_name|grep -v "grep"|grep -v "$0" |awk '{print $2}'`

#echo "tomcat Id list :$pidlist"



kill -15 $pidlist

#echo "KILL $pidlist"

sleep 10

tompid=`ps -ef|grep $Project_name|grep -v "grep"|grep -v "$0" |awk '{print $2}'`

if ( [ -n "$tompid" ] && [ $tompid == $pidlist ] );then



echo -e "\033[31m$Project_name停止失败,请重新执行一次命令\033[0m"



else

#/usr/bin/tail -1000 $Project_name/logs/catalina.out

echo -e "\033[32m$Project_name停止成功\033[0m"



fi
;;
status)

tompid=`ps -ef|grep $Project_name|grep -v "grep"|grep -v "$0" |awk '{print $2}'`

if ( [ -n "$tompid" ] );then



echo -e "\033[32m$Project_name运行中......\033[0m"
else



echo -e "\033[32m$Project_name停止中.....\033[0m"



fi



;;
restart)

export JAVA_HOME=/usr/local/java/jdk1.6.0_23

pidlist=`ps -ef|grep $Project_name|grep -v "grep"|grep -v "$0"|awk '{print $2}'`



# echo "tomcat Id list :$pidlist"



kill -15 $pidlist



#echo "KILL $pidlist:"



#echo "stop success"



#echo "start tomcat"

cd $Project_name



rm -rf work/*



cd bin

sleep 10

./startup.sh

sleep 3



/usr/bin/tail -100 $Project_name/logs/catalina.out

echo -e "\033[32m$Project_name重启成功\033[0m"

;;



backup)



cd $Project_name

before_num=`/bin/ls webapps_backup/ |wc -l`

`/bin/find -type d -name "webapps_[0-9]*" -mtime +10 | xargs rm -fr`

#echo $my_Back



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



  `/bin/mkdir -p $my_Back`



fi

/bin/cp -frp webapps $my_Back/webapps_$(/bin/date -d "today" +"%Y%m%d_%H%M")




after_num=`/bin/ls webapps_backup/ |wc -l`



if [ $after_num -eq $(($before_num+1)) ];then



echo -e "\033[32m$Project_name备份成功\033[0m"

else

echo -e "\033[31m$Project_name备份失败,请重新备份\033[0m"

fi



;;



rollback)

file_name=`/bin/ls -ltc $Project_name/$my_Back|sed -n 2p|awk '{print $8}'`

#echo "$Project_name/$my_Back/$file_name"

#echo $file_name



/bin/cp -frp $Project_name/$my_Back/$file_name $Project_name/$my_Back/webapps

/bin/cp -frp $Project_name/$my_Back/webapps $Project_name

rm -fr $Project_name/$my_Back/webapps

cd $Project_name

if ([ "`find ./ -maxdepth 1 -type d -cmin -1|sed -n 1p`" == './webapps' ]);then

echo -e "\033[32m$Project_name回滚成功\033[0m"

else

echo -e "\033[31m$Project_name回滚失败,请重新执行一次\033[0m"

fi



;;
*)
echo "Usage: $0 {start|stop|restart|status|backup|rollback}"



exit 1



esac

exit 0


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Annotation的应用场合 下一篇在Eclipse外使用JUnit测试

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·“我用Java 8”已成 (2025-12-26 11:19:54)
·下载 IntelliJ IDEA (2025-12-26 11:19:52)
·Java是什么?(通俗 (2025-12-26 11:19:49)
·雾里看花:真正意义 (2025-12-26 10:54:36)
·C++——模板(超详细 (2025-12-26 10:54:34)