免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3012 | 回复: 2
打印 上一主题 下一主题

一个tomcat启动脚本在crontab下的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-24 17:31 |只看该作者 |倒序浏览
脚本很简单,由于业务的需要,主要是根据判定服务器A的apache服务存活,来决定是否关闭或开启本机tomcat服务
脚本如下:
            [root@a ~]#vi /usr/local/sbin/1.sh

#!/bin/bash

port=` nmap –p 10094 --system-dns 172.29.1.158 | grep 10094 | awk -F[:" "]+ '{print $2}'`

loaclport=` nmap -p 10450 --system-dns localhost | grep 10450 | awk -F[:" "]+ '{print $2}'`

while [ `whoami` == "root" ]

do


if [ "$port" != "open" ];then


echo "172.29.1.158 is stop"


sh /usr/local/apache-tomcat-6.0.29/bin/shutdown.sh


else


echo "172.29.1.158 is runing"


if [ "$loaclport" != "open" ];then


echo "172.29.1.136 is stop"


sh /usr/local/apache-tomcat-6.0.29/bin/startup.sh


else


echo "172.29.1.136 is runing"

fi


fi

break

done



赋予可执行的权限:


[root@a ~]#chmod +x /usr/local/sbin/1.sh


     编写定时任务:


[root@a ~]#Crontab –e,加入如下语句:

*/2 * * * *

/usr/local/sbin/1.sh

> /dev/null 2>&1

然后关闭了IP 为172.29.1.158 的服务器的apache服务,但定时任务无法执行,我把*/2 * * * *

/usr/local/sbin/1.sh

> /dev/null 2>&1输出结果替换为1.log 2>&1

结果发现输出结果卡在172.29.1.158 is stop,脚本未执行shutdown.sh。




我不使用定时任务的话,执行脚本没有任何问题

论坛徽章:
0
2 [报告]
发表于 2010-11-24 22:33 |只看该作者
估计又是环境变量和tomcat执行目录的问题了。

在shutdown.sh和startup.sh的最前面加上这段代码试试

cd $(dirname -- $(readlink -f -- "$0"))

论坛徽章:
0
3 [报告]
发表于 2010-11-25 08:56 |只看该作者
. ~/.bash_profile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP