抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > Linux服务器挂掉 使之自动重启脚本

Linux服务器挂掉 使之自动重启脚本

时间:2019-07-22 07:59:41

相关推荐

实现原理

主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本

实现

1. 向crontab添加任务- crontab -l 查询当前用户的任务- 创建一个文件(server_cron)输入* * * * * sleep 10; sh /路径/server_maintenance.sh- cronrab server_cron (生效)2. shell脚本

#! /bin/shproc_name="./server" #进程名proc_num() #查询进程数量{num=$(ps -ef | grep gdms |grep $proc_name | grep -v "grep" | wc -l)echo $numreturn $num}proc_numnumber=$? #获取进程数量 if [ $number -eq 0 ] #如果进程数量为0then #重新启动服务器,或者扩展其它内容。 cd /home/liudongwei/workspace/server2.0/distnohup ./server & fi

参考:

/leodaxin/p/9222969.html

/shanzhizi/article/details/8123854

上个版本经过实际应用,发现严重的问题:每隔一分钟就会执行一次脚本,如果有LOG日志的话,会发现你的磁盘快满了o(╥﹏╥)o

解决问题:

回顾了crontab相关知识

crontab -l

查询当前用户任务tail -f /var/log/syslog

查看到执行任务命令之后在日志中的信息反馈crontab -r

删除当前用户任务

分析

经过我在网上搜素相关问题,了解到有些脚本放在crontab定时器中执行,不会运行(就比如我上文提到的重启服务脚本),我上个脚本之所以执行成功,是因为grep gram,其实我也不知道这是啥意思,我抄的。。。大意是搜索gram,这个哪有,所以函数proc_num() 返回值都是0。

解决

一行一行的理解代码验证测试反正我是试出来的

proc_num(){#ps -ef | grep ./server#echo #ps -ef | grep ./server | grep -v "grep"#echo#ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh"#echo#ps -ef | grep $proc_name | grep -v "grep" | wc -l#echo#ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh" |wc -l#echonum=$(ps -ef | grep $proc_name | grep -v "grep" | grep -v "sh" |wc -l)#echo $numreturn $num}

总结

拿来,没有真正理解,会返工,只能多总结,多积累

如果觉得《Linux服务器挂掉 使之自动重启脚本》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。