centos写java脚本,Centos自动拉起脚本

项目上线之后,服务器有时候会莫名其妙的挂掉,利用shell写一个看门狗程序,监测服务器异常关闭后,重启服务器。

新建脚本文件,赋予权限

touch start.sh

chmod 755 start.sh

编写脚本文件

#!/bin/sh

# 自动监控jar并且在异常时执行重启操作

# 定义java环境变量

export JAVA_HOME=/usr/local/myApp/jdk1.8

# 获取端口号为8711的jar进程ID

# grep -v grep 排除grep命令自带的进程id

# awk '{print $2}' 只保留结果中第二列的值

pid=$(ps -ef |grep 8711|grep -v grep|awk '{print $2}')

# 启动脚本

start=/usr/local/myApp/xxx/bin/start.sh

# 服务链接地址

url=http://192.168.6.179:8711/api/swagger-ui.html

# 监控时的日志输出

log=/tmp/my.log

#linux垃圾回收站

hole=/dev/null

function doIt()

{

if [ $pid ]

then

echo "jar进程ID存在"

code=$(curl -s -o $hole -m 10 --connect-timeout 10 $url -w %{http_code}"\n") #测试链接是否可以正常访问

if [ $code -eq 200 ]

then

echo "测试链接正常"

else

echo "测试链接失败,重启jar"

kill -9 $pid # 杀掉进程

sleep 5

$start

fi

else

echo "jar进程id不存在,重启中...."

$start

fi

echo "------------------------------"

}

doIt>>$log #执行函数,并打印日志

设置定时执行start.sh文件

crontab -e

命令行输入crontab -e会自动打开一个空文件, 输入定时处理的任务:

#需要定时重启docker容器

#查看容器id: docker ps|grep netty

#yw-netty

0 2 * * * docker restart 234234234

#saas-yw-netty

0 2 * * * docker restart 4645645656

保存后,在/var/spool/cron/下面查看创建的定时任务。

添加内容:

*/30 * * * * /tmp/mySh/start.sh #每30分钟执行一次

启动定时任务

service crond start #启动定时任务

service crond status #查看状态

service crond restart #重启定时任务

service crond stop #停止定时任务

查看定时任务执行情况

crontab -l

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值