精华内容
下载资源
问答
  • 写个监控脚本,每隔一段时间查看一下进程是否存在,不存在则重启服务。 代码如下: #!/usr/bin/env bash ################# # # 进程监控脚本 # 2016-05-11 lpe234 # # 每五分钟 执行一次检查. # sudo ...

    1.Linux脚本

        起因: 公司部署的web服务经常莫名其妙的挂掉。而且 还找不到具体的问题,使用supervisor守护的gunicorn,但是在多次尝试重启失败之后, 就再也不启动了。然后 只能想另外的办法。写个监控脚本,每隔一段时间查看一下进程是否存在,不存在则重启服务。

    代码如下:

    #!/usr/bin/env bash
    
    #################
    #
    # 进程监控脚本
    # 2016-05-11 lpe234
    #
    # 每五分钟 执行一次检查.
    # sudo crontab -e
    # */5 * * * * /bin/bash /path/to/monitor.sh >> /path/to/monitor.log 2>&1
    #
    ################
    
    process_name="process_name"
    process_count=10  # 理论进程数量
    
    # 获取church_app进程数量(默认为10)
    process_number()
    {
        number=`ps -ef | grep ${process_name} | grep -v grep | wc -l`
        return ${number}
    }
    
    process_number
    
    p_num=$?
    
    now=`date '+%Y-%m-%d %H:%M:%S'`
    
    if [ ${p_num} -lt ${process_count} ]
    then
        # 抛出错误日志
        echo "[$now] [ERROR] '$process_name' process_number is $p_num, restart it."
        # TODO: 发送报警邮件.....
        # 重启web服务相关代码
    # 调试信息
    #else
    #    echo "[$now] [DEBUG] '$process_name' process_number is $p_num, status ok."
    fi
    

    额, 大概就是这个样子。 

    crontab 有两种配置方式。 一种是 修改 /etc/crontab 文件, 需要制定执行命令的账户。 第二种是  crontab -e 直接编辑, 此时不需要指定执行用户, 默认为当前编辑用户。使用 crontab -l 即可查看当前用户的所有定时任务(不包括 修改 /etc/crontab 文件 添加的定时任务)


    2.使用系统自带的 mail 发送邮件

    这个, 折腾了大半天。好多都只是说了怎么发送邮件。但没有说具体怎么配置。

    修改  /etc/mail.rc  这个文件, 条件如下内容:

    # mail config
    set from=xxx@qq.com
    set smtp=smtp.qq.com
    set smtp-auth-user=xxx
    set smtp-auth-password=xxx
    set smtp-auth=login

    然后, 理论上就可以愉快的发送邮件了。

    mail -s '123' lpe234@qq.com < x.sh

    至于 添加附件之类的。 有时间再研究吧。

    转载于:https://my.oschina.net/lpe234/blog/673799

    展开全文
  • 进程可能会崩溃导致停掉,现在用sh脚本进行监控,停掉自动重启. 脚本命名:monitor.sh 隐藏启动命令:nohup ./monitor.sh > monitor.file 2>&1 & 如下: #!/bin/sh # 函数: CheckProcess # 功能: ...

    进程可能会崩溃导致停掉,现在用sh脚本进行监控,停掉自动重启.

    脚本命名:monitor.sh

    隐藏启动命令:nohup ./monitor.sh  > monitor.file 2>&1 &

    代码如下:

    #!/bin/sh
    
    # 函数: CheckProcess
    # 功能: 检查一个进程是否存在
    # 参数: $1 --- 要检查的进程名称
    # 返回: 如果存在返回0, 否则返回1.
    #------------------------------------------------------------------------------
    CheckProcess()
    {
      # 检查输入的参数是否有效
      if [ "$1" = "" ];
      then
        return 1
      fi
     
      #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
      PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l` 
      if [ $PROCESS_NUM -eq 1 ];
      then
        return 0
      else
        return 1
      fi
    }
     
     
    # 检查test实例是否已经存在
    while [ 1 ] ; do
         CheckProcess "test"
         Check_RET=$?
         if [ $Check_RET -eq 1 ];
         then
            echo "服务不正常"
            # 隐藏启动test 
             nohup ./test  > nohuptest.file 2>&1 &
        else
            echo "服务正常"
        fi
     sleep 60
    done

     

    展开全文
  • linuxshell监控脚本

    2018-10-16 10:59:51
    shell 脚本如下: #! /bin/bash # 间隔时间 SLEEP_TIME=30 if [ "$#" -lt 1 ] # $# 传递给脚本或函数的参数个数 then  echo "Usage: $0 program" # $0 脚本名称  exit -1; fi # 第一个参数为被监控的...

    线程数:  thread_num = $(pstree -p $PID | wc -l)

    打开文件数: open_files = $(lsof -p $PID | wc -l)

    cpu占用率: cpu = 'top -bn 1 -p $PID | awk 'NR==8{PRINT $9}''

    虚存使用量: vmem = 'ps aux | grep $PID | grep -v grep | awk '{print $5}''   #单位m

                        vmem = 'top -bn 1 -p $PID | awk 'NR==8{print $5}''    #单位k

    内存使用量: vmem = 'ps aux | grep $PID | grep -v grep | awk '{print $6}''   #单位m

                        vmem = 'top -bn 1 -p $PID | awk 'NR==8{print $6}''    #单位k

       

    shell 脚本如下:

    #! /bin/bash
    
    # 间隔时间
    SLEEP_TIME=30
    
    
    if [ "$#" -lt 1 ]   # $# 传递给脚本或函数的参数个数
    then
        echo "Usage: $0 program"   # $0 脚本名称
        exit -1;
    fi
    
    # 第一个参数为被监控的进程ID
    PID="$1"
    FILTER="grep\|monitor\|ps\|top\|lsof\|pstree\|sz\|rz\|gdb"
    PROCESS_NAME=$(ps -ef | grep ${PID} | grep -v ${FILTER} | awk '{print $8}' | awk -F '[/]' '{print $NF}')
    # 自动抓取进程名,拼接日志文件名 [进程名]_[PID]_stress_monitoring_record.log
    LOG="${PROCESS_NAME}_${PID}_stress_monitoring_record.log"
    
    thread_num=0
    open_files=0
    vmem=0
    mem=0
    cpu_info=""
    
    
    while true
    do
        # 判断被监控的进程是否启动
        PRO_NOW=`ps aux | grep $PID | grep -v ${FILTER} | wc -l`
        if [ $PRO_NOW -eq 0 ]
        then 
            echo "`date +"%Y-%m-%d %H:%M:%S"`, $PID is not running!!!!!!!!!!!!!" >> ./$LOG
        else
            #线程数
            thread_num=$(pstree -p $PID | wc -l)
            #打开文件数
            open_files=$(lsof -p $PID | wc -l)
            #cpu占用率
            cpu_info=`top -bn 1 -p $PID | awk 'NR==8 {print $9}'`
            #虚拟内存使用量
            vmem=`ps aux | grep $PID | grep -v ${FILTER} | awk '{print $5}'`
            #内存使用量
            mem=`ps aux | grep $PID | grep -v ${FILTER} | awk '{print $6}'`
            #输出到日志文件
            echo -e "`date +"%Y-%m-%d\t%H:%M:%S"`\t${vmem}\t${mem}\t${cpu_info}\t${open_files}\t${thread_num}" >> ./${LOG}
        fi
        sleep $SLEEP_TIME
    done


     

     

    展开全文
  • 今天为大家带来的内容是:(python)Linuxshell脚本监控Tomcat的状态并实现自动启动步骤本文内容主要介绍了Linuxshell脚本监控Tomcat的状态并实现自动启动的步骤,文章给大家介绍的非常详细,具有一定的参考借鉴...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤

    本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧!

    最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤。

    1.编写Shell脚本monitor.sh

    67aef68a40a30e3ea7d5f9c3d2e03282.png

    嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“07”领取资料!

    2.测试Shell脚本monitor.sh是否允许成功

    第一:执行脚本./monitor.sh

    如果报权限错误:chmod 777 monitor.sh

    第二:执行脚本./monitor.sh

    如果报/bin/bash^M:,坏的解释器,没有那个文件或目录 :sed -i 's/$//' build.sh

    第三:执行脚本./monitor.sh

    如果有z字符输出不了:更改xshell字体

    691cd8f4005aaf99b03ad82c421411b1.png

    3.把脚本加到crontab定时任务中

    每分钟检查一次

    打开/etc/crontab文件添加定时任务

    b9fdeacde7f5304e7ac96d91378a9b95.png

    总结

    以上所述是小编给大家介绍的Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

    最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

    展开全文
  • Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间1. 目的或任务当MySQL数据库、Apache Web服务器停止运行时,重新启动运行,并发送邮件通知;当服务器磁盘的空间占用率大于90%发送邮件警告2. 思路对于上述目的或...
  • Linux Shell 常用脚本

    2020-09-17 15:53:51
    Linux Shell 常用脚本轮询检测Apache状态并启用钉钉报警一台监控主机,一台被监控主机。被监控主机分区使用率大于80%,就发告警邮件。放到crontab里面,每10分钟执行一次。监控主机的磁盘空间,当使用空间超过90%就...
  • 主要为大家分享一个监控linux进程的shell脚本,当程序异常退出时可以自动重启,涉及到捕获进程信号与重启进程的命令与知识
  • shell监控脚本-监控memcache注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5下测试正常,其它版本的linux 系统请自行测试 #监控memcache cat chk_memcache.sh #!/bin/bash # #script_name:chk_...
  • shell监控脚本-监控磁盘注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5下测试正常,其它版本的linux 系统请自行测试 #监控磁盘 cat chk_df.sh #!/bin/bash # #script_name:chk_df.sh #check ...
  • shell监控脚本-监控网络注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5/6下测试正常,其它版本的linux 系统请自行测试 #监控网络 cat chk_ping.sh #!/bin/bash # #script_name:chk_ping.sh #...
  • 1,shell脚本:check_app.sh功能:检测站点进程是否运行,若没运行则执行程序启动进程,然后检测站点是否能正常访问,若不能访问则kill掉站点相关进程,然后重新启动程序。代码:复制代码 代码示例:#!/bin/sh#设置...
  • 分享一个Linux下,监控MySQL主从状态及配合企业微信机器人报警的Shell脚本SLAVE_IP:为监控的主机IPUSER:为msyql用户PASSWORD:为mysql密码WHEREIS_MYSQL:为mysql命令路径WEBHOOK:为企业微信机器人Webhook地址wx...
  • shell监控脚本-监控web server注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5下测试正常,其它版本的linux 系统请自行测试 #监控web server cat chk_web.sh #!/bin/bash # #script_name:chk_web...
  • shell监控脚本-监控系统负载注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5下测试正常,其它版本的linux 系统请自行测试 #监控系统负载 cat chk_load.sh #!/bin/bash # #script_name:chk_load....
  • Linux使用shell脚本监控

    2019-10-07 21:42:42
    (1)性能监控脚本 performance.sh #!/bin/bash #---------------------------------------------------------------... # 说明,Linux服务器--性能监控脚本 ,网址来源:http://bbs.51cto.com/thread-937759-1...
  • linux shell脚本监控进程崩溃自动重启,由于目前有Python实现的通讯组件时不时会异常中断,在还没有找到问题的解决办法时先暂时用shell监控并自动重启处理。 # ! /bin/sh basepath=$(cd `dirname $0`; pwd) ...
  • df -h | grep -E "/data|/factory" | tr "%" " " | awk '$5>70{print $1,$2,$4,$5"%",$6}' 输出例子: /dev/mmc111G 1.4G 86% /data 程序端可通过调用该脚本判断,当百分比大于某个...
  • cron定时任务优点:系统进程,不易被回收缺点:频率最低为一分钟执行一次脚本注意:监控其他服务只需要替换java为对应的进程即可,如替换为进程中包含mongod-shardsvr1.conf字符的进程。#!/bin/bashcount=`ps aux | ...
  • 简单linux shell脚本监控磁盘使用情况,发送邮件告警 首先第一步我们要明确我们目的: 编写个脚本监控这个根目录, 使用空间达到max_num%就告警发送邮件 话不多说,直接上图: 是不是一眼看过去就能发现我想表达的...
  • shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] then echo "start process....." else echo "runing....." fi shell基本...
  • 1 准备监控linux 系统,普通服务器即可,要求: 安装ssh 客户端,如果要发送手机短信,还需准备短信猫并且安装 gnokii...4 建立sh 目录,用于存放shell 脚本 mkdir -p /root/sh/crontab/log sh 目录存放shell 脚本 cron
  • 注意:请先参考shell监控脚本-准备工作,监控脚本在rhel5下测试正常,其它版本的linux 系统请自行测试 #监控CDN 首页 cat chk_cdn.sh #!/bin/bash # #script_name:chk_cdn.sh #check cdn index.html ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,444
精华内容 577
关键字:

linuxshell监控脚本

linux 订阅