shell脚本检测服务器进程并重启以及失败预警

mutt发送邮件配置:

路径:/usr/local/mutt

相关文件:install.sh、mutt-1.5.21.tar.gz、msmtp-1.4.21.tar.bz2
相关文件下载链接

安装以及配置脚本:install.sh

运行install.sh即可,邮件配置都在install.sh中,Mail_USER发送方邮箱名,Mail_PWD发送方邮箱密码。

(运行中会有问题:no curses library found
解决方法:yum install ncurses-devel)

crontab配置:

yum install -y vixie-cron

使用方法:(五分钟检测一次)

check-kafka.sh路径:/home/check-kafka.sh

crontab -e
*/5 * * * * /bin/bash /home/check-kafka.sh
check-kafka.sh相关说明:

举例:kafka1服务器

检测顺序:zookeeper -> kafka -> kafka-consumer

检测过程:ps命令检测是否有相关进程存在,如没有则启动对应进程,然后再检测一次,如果还未启动,则通过mutt发送相关服务器和对应的进程名到邮件。如果存在相关进程或者启动成功则不做任何操作。

注:对于脚本直接启动正常而放进crontab后定时启动失败的原因总结

原因:
在运行crontab的时候,是non_login方式调用程序的,此时~/.bash_profile并不会被提前调用。所以,crontab的运行环境相对于login方式进入bash运行的环境来说小得多。如果程序涉及~/.bash_profile使用的环境变量,那么,部分在login方式可以正常运行的程序在crontab下就无法运行。

解决方法:

添加环境变量,如下:

export HOSTNAME=dsj-kafka2
export PATH=/usr/local/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export ZOO_LOG_DIR=/work/kafka/zkplog
export JAVA_HOME=/usr/local/java
export LANG=zh_CN.UTF-8
export ZOO_DATADIR=/work/kafka/zkpdata
export CLASSPATH=.:/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar

或者导入环境变量(两种方法,任选一种即可):

1.在crontab -e编辑时加入

. /etc/profile;/bin/bash #主要"."后要有个空格
#例子
*/5 * * * * . /etc/profile;/bin/bash /home/check-kafka.sh

2.在你要运行的脚本的开头加入

source /etc/profile

jianceKafka.sh源码
#!/bin/bash

function StartKafka()
{

ps -fe|grep [检测进程名] |grep -v grep
if [ $? -ne 0 ]
then
    sleep 1
    [进程启动命令]
    sleep 1
    ps -fe|grep [检测进程名] |grep -v grep
    if [ $? -ne 0 ]
    then
        echo "warning" | [mutt路径] -s "warning" [接收的邮箱(多个邮箱需以“,”划分)]
        # isSendMail="true"
    fi
fi

}

#main function

function_main ()

{

StartKafka;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值