#!/bin/sh
. /etc/profile
pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`
echo $pid
if [ -n "$pid" ]
then
{
echo ===========shutdown================
/opt/tomcat/bin/shutdown.sh
sleep 1
pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`
if [ -n "$pid" ]
then
{
sleep 1
echo ========kill tomcat==============
kill -9 $pid
}
fi
sleep 1
echo ===========startup.sh==============
/opt/tomcat/bin/startup.sh
}
else
echo ===========startup.sh==============
/opt/tomcat/bin/startup.sh
fi
1)使用crontab -e 命令进入编辑crontab脚本。
这里有个小插曲,第一次输入crontab -e的时候,会提示提醒选择编辑器,一开始我选择了nano编辑器,后来一直以为没法输入crontab脚本。后来找到办法,原来是编辑器问题,需要用sudo select-editor命令重新选择vim编辑器就ok了。
下面稍微解释下crontab中每行的含义。crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:
星号 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
逗号 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
斜线 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别
*/2 可以看成是能被2整除的任意值。
我的crontab脚本如下,供大家参考:
30 04 * * * /home/ftp_files/restart.sh
每天凌晨4点30分,执行重启tomcat脚本。
2)wq退出保存crontab脚本,然后使用crontab -l 命令可以查看刚刚设置的定时任务。
3)重启crontab任务:
/etc/init.d/cron restart
4)到此,大功告成啦!以后妈妈再也不用担心Tomcat挂掉了,哈哈!