linux自动重起服务,并发送邮件通知结果

简介: 点击(此处)折叠或打开 #! /bin/bash PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/app/service/bin:/app/service/bin:/usr/local/java/jdk1.

点击(此处)折叠或打开

  1. #! /bin/bash
  2. PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/app/service/bin:/app/service/bin:/usr/local/java/jdk1.6.0_20/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/app/service/bin
  3. DATETIME=`date +%F`
  4. serpath=/app/service/ser/bin
  5. serlog=/app/service/serrestart.log
  6. serdate=`date +%F.%T`
  7. serip=`/sbin/ifconfig |grep 'inet addr'|grep 192 |awk -F: '{print $2}'|awk '{print $1}'`
  8. seruser=`whoami`
  9. #####mailsend
  10. mailtitle="ser information $serdate $serip "
  11. mailmessagefile=$HOME/mail.txt #邮件信息内容
  12. mailmessage= #邮件信息内容
  13. #mailcatcher=noc@test.com
  14. mailcatcher=talen.hao@test.com #邮件接收者
  15. mailsender=ser@test.com #邮件发送者
  16. serPIDFILE=/app/service/ser/user-attributes-database.pid


  17. #####
  18. statusser()
  19. {
  20.         ps -ef |grep ser |grep java|grep -v grep |awk '{print $2}'
  21. }
  22. Uadrestart()
  23. {
  24.         cd $serpath
  25.         echo ">>>>> $serdate : 当前目录 `pwd`"
  26.         pidold=`statusser`
  27.         echo ">>>>> $serdate : Old PID NO. is "
  28.         #./misctrl.sh stop
  29.         kill -9 $pidold
  30.         rm -v $serPIDFILE
  31.         sleep 1
  32.         ./misctrl.sh start
  33.         pidnew=`statusser`
  34.         echo ">>>>> $serdate : New PID NO. is "
  35. }

  36. Status(){
  37.         if [ -f $serPIDFILE ]
  38.         then
  39.                 if test -z $pidnew -o $pidnew = $pidold
  40.                 then
  41.                         mailmessage='ser service restarted failure'
  42.                         echo "$serdate : $serip $mailmessage" > $mailmessagefile
  43.                         echo "$serdate : Old PID NO. is " >> $mailmessagefile
  44.                         echo "$serdate : New PID NO. is " >> $mailmessagefile
  45.                         echo "$serdate : restarted faild ==> $mailmessage"
  46.                         isok=failure
  47.                 else
  48.                         mailmessage='ser service restarted success'
  49.                         echo "$serdate : $serip $mailmessage" > $mailmessagefile
  50.                         echo "$serdate : Old PID NO. is " >> $mailmessagefile
  51.                         echo "$serdate : New PID NO. is " >> $mailmessagefile
  52.                         echo "$serdate : restarted ok ==> $mailmessage"
  53.                         isok=success
  54. fi
  55.         else
  56.                 mailmessage='ser service restarted failure'
  57.                 echo "$serdate : $serip $mailmessage" > $mailmessagefile
  58.                 echo "$serdate : Old PID NO. is " >> $mailmessagefile
  59.                 echo "$serdate : New PID NO. is " >> $mailmessagefile
  60.                 echo "$serdate : restarted faild ==> $mailmessage"
  61.                 isok=failure
  62.                 exit 1
  63. fi
  64. }

  65. MailSend()
  66. {
  67.         `which mail` -v -s "$mailtitle $isok" $mailcatcher -- -f $mailsender $mailmessagefile
  68. }

  69. vim.mailrc()
  70. {
  71.         cp -v $HOME/.mailrc{,.bak$DATETIME-`echo $RANDOM`}
  72.         echo 'set from=sender@126.com smtp=smtp.126.com' > $HOME/.mailrc
  73.         echo 'set smtp-auth-user=sender@126.com smtp-auth-password=sender.com' >> $HOME/.mailrc
  74.         echo 'set smtp-auth=login' >> $HOME/.mailrc
  75. }
  76. MAIL()
  77. {
  78.         if test -f $HOME/.mailrc
  79.         then
  80.                 MailSend
  81.         else
  82.                 echo ".mailrc文件不存在,将创建此文件"
  83.                 vim.mailrc
  84.                 MailSend
  85.         fi
  86. }
  87. if [ $seruser == service ]
  88. then
  89.         echo ">>>>>$serdate : 开始执行重起服务"
  90.         Uadrestart
  91.         Status
  92.         MAIL
  93.         exit 0
  94. else
  95.         echo ">>>>>$serdate : 严重!!使用service 用户运行此脚本"
  96.         exit 1
  97. fi

目录
相关文章
|
13天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
35 5
linux系统服务二!
|
13天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
35 3
linux系统服务!!!
|
3月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
18天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
80 3
|
18天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
63 3
|
1月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
25 2
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
2月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
302 3
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
3月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?