linux脚本自动改端口,Linux下设置监控tomcat端口脚本,优化版

领导要求脚本要长时间在系统后台运行,于是修改了上次的脚本,加了守护进程。我的脚本如下:

#!/bin/bash

echo "Start"

URL="http://127.0.0.1:8080/"

curlit()

{

#echo "??"

curl --connect-timeout 10 --max-time 20 --head --silent "$URL" | grep '200'

# 上面的15是连接超时时间,若访问localhost的HTTP服务超过15s仍然没有正确响应200头代码,则判断为无法访问。

}

doit()

{

if ! curlit; then

# 如果localhost的apache服务没有正常返回200头,即出现异常。执行下述命令:

# echo "TD"

sleep 20

#top -n 1 -b >> /var/log/log.log

kill  `ps -ef|grep java|grep -v grep |awk '{print $2}'` > /dev/null 2>&1

# 这条语句中ps -ef|grep java|grep -v grep为查询进程中java进程同时排除本身语句,用awk找到第二列信息,返回状态扔到黑洞中。

sleep 2

cd /home/test/tomcat6/bin/

nohup /home/test/tomcat6/bin/startup.sh >/home/jiankong.log &

#echo "EN"

echo $(date) “Tomcat Restart” >> /var/log/log.log

# 写入日志

sleep 60

# 重启完成后等待,然后再次尝试一次

if  ! curlit; then

# 如果仍然无法访问,则:

echo "@"

echo $(date) “Failed!” >> /var/log/log.log

# 写入apache依然重启失效的日志

fi

参考资料解释:

在启动weblogic的时候我们经常看到如下的命令:

nohup ./startWebLogic.sh >out.log 2>&1 &

从09年开始用weblogic到现在已经过去3年多了 ,今天终于将该命令理解清楚了。

其中 0、1、2分别代表如下含义:

0 – stdin (standard input)

1 – stdout (standard output)

2 – stderr (standard error)

nohup ./startWebLogic.sh >out.log 2>&1 &

nohup+最后面的& 是让命令在后台执行

>out.log 是将信息输出到out.log日志中

2>&1 是将标准错误信息转变成标准输出,这样就可以将错误信息输出到out.log 日志里面来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值