日期:2014-05-16  浏览次数:20649 次

linux 下部署 重启 tomcat
#!/bin/sh

#
#tomcat home
#需要手动修改成自己的位置
#
tomcat_home=/usr/java/apache-tomcat-6.0.10


#在输入一个字符后不用按回车就提交
#如果机器上不认stty raw那么把函数中两处出现的raw换成cbreak
get_char()
{
    SAVEDSTTY=`stty -g`
     stty -echo
     stty raw
     dd if=/dev/tty bs=1 count=1 2> /dev/null
     stty -raw
     stty echo
     stty $SAVEDSTTY
}
#
#从键盘接收yes or no
#返回:0-yes 1-no
#
yesno()
{

    echo -n "\n【q/Q退出,y/Y是,n/N否】 [q/y/n]:"
     while true
    do 
        cmd=`get_char`
        case $cmd in
             y|Y)
            echo $cmd
            return 0
            ;; 
             n|N)
            echo $cmd
            return 1
            ;; 
             q|Q)
            echo $cmd
            return 2
            ;; 
             *) 
            continue
            ;; 
        esac
    done
}


#
#重启的方法
#
restrat()
{

pid=$(pgrep -f $tomcat_home)

echo kill pid[$pid]
kill -9 $pid

#调用删除日志和缓存
delCachel

#调用解压文件
unzipfile

#重启
sh $tomcat_home/bin/startup.sh

#调用查看日志
taillog

}


#
#只是解压更新文件
#
onlyunzip()
{
#调用解压文件
unzipfile

#调用查看日志
taillog
}



#
#查看日志
#
taillog()
{
   tail -f $tomcat_home/logs/catalina.out
}


#
#解压文件
#
unzipfile()
{
   cd $tomcat_home/webapps
   unzip -o $tomcat_home/webapps/*.zip
}


#
#删除日志和缓存
#改方法只有在重启的时候使用
#
delCachel()
{

echo delete[$tomcat_home/logs/*]
rm -rf $tomcat_home/logs/*

echo delete[$tomcat_home/temp/*]
rm -rf $tomcat_home/temp/*

#null日志文件夹是我们项目里特有的 哈哈 配置的问题
echo delete[$tomcat_home/null/*]
rm -rf $tomcat_home/null/*

echo delete[$tomcat_home/work/*]
rm -rf $tomcat_home/work/*

}


#应用示例
echo "是否要重启?"
yesno
t=$?
if [ $t -eq 0 ];then
    restrat
elif [ $t -eq 1 ];then
    onlyunzip
elif [ $t -eq 2 ];then
    echo "选择退出"
fi