设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย french

搜索
热搜: 活动 交友 discuz

Linux 进程自动监控shell脚本 [复制链接]
查看:55 | 回复:8

7

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2011-8-8 00:01:37 | 显示全部楼层 |阅读模式
主要用于监控 linux 服务器负载及内存占用,如 MySQl、php-fpm,当负载或内存占用达到设置值后,便自动重启该进程以避免宕机。

一、使用方法

下载、解压、运行

[ol]
  • wget https://wangyan.org/download/script/pid_auto_reboot.tar.gz
  • tar -zxf pid_auto_reboot.tar.gz
  • vim pid_auto_reboot.sh #修改预设阀值
  • [/ol]复制代码

    设置每分钟检查一次

    [ol]
  • crontab -e
  • * * * * * /bin/bash /root/cut_nginx_logs.sh
  • [/ol]复制代码

    二、原理解释

    [ol]
  • # 设置最大内存占用百分比
  • PID_MEM_MAX="85"
  • # 设置最大系统负载
  • SYS_LOAD_MAX="3"
  • # 设置需要监控的服务名称
  • NAME_LIST="php-fpm mysql"
  • for NAME in $NAME_LIST
  • do
  •     # 初始化内存统计
  •     PID_MEM_SUM=0
  •     # 获取该程序总进程数
  •     PID_NUM_SUM=`ps aux | grep $NAME | wc -l`
  •     # 列出每个进程内存占用百分比
  •     PID_MEM_LIST=`ps aux | grep $NAME | awk '{print $4}'`
  •     # 计算所有进程总内存占用
  •     for PID_MEM in $PID_MEM_LIST
  •     do
  •         PID_MEM_SUM=`echo $PID_MEM_SUM + $PID_MEM | bc`
  •     done
  •     # 获取最近一分钟系统负载
  •     SYS_LOAD=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`
  •     # 比较内存占用和系统负载是否超过阀值
  •     MEM_VULE=`awk 'BEGIN{print('"$PID_MEM_SUM"'>='"$PID_MEM_MAX"'?"1":"0")}'`
  •     LOAD_VULE=`awk 'BEGIN{print('"$SYS_LOAD"'>='"$SYS_LOAD_MAX"'?"1":"0")}'`
  •     # 如果系统内存占用和系统负载超过阀值,则进行下面操作。
  •     if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then
  •         #  写入日志
  •         echo $(date +"%y-%m-%d %H:%M:%S") "killall $NAME" "(MEMPID_MEM_SUM,LOADSYS_LOAD)">> /var/log/autoreboot.log
  •         # 正常停止服务
  •         /etc/init.d/$NAME stop
  •         sleep 3
  •         # 强制关闭
  •         pkill $NAME
  •        #  重启
  •         /etc/init.d/$NAME start
  •        #写入日志
  •         echo $(date +"%y-%m-%d %H:%M:%S") "start $NAME" "(MEMPID_MEM_SUM,LOADSYS_LOAD)" >> /var/log/autoreboot.log
  •     else
  •         echo "$NAME very health!(MEMPID_MEM_SUM,LOADSYS_LOAD)" > /dev/null
  •     fi
  • done
  • [/ol]复制代码

    原文:https://wangyan.org/blog/pid-auto-reboot-shell-html.html
  • 184

    主题

    1937

    回帖

    4506

    积分

    论坛元老

    积分
    4506
    发表于 2011-8-8 00:04:21 | 显示全部楼层
    看看了。。。。。。。。。。。。。

    184

    主题

    1937

    回帖

    4506

    积分

    论坛元老

    积分
    4506
    发表于 2011-8-8 00:05:27 | 显示全部楼层
    lz你的博客很慢

    50

    主题

    4112

    回帖

    8466

    积分

    论坛元老

    积分
    8466
    发表于 2011-8-8 00:07:44 | 显示全部楼层








    强大

    再加个CC判断就不错了

    7

    主题

    7

    回帖

    43

    积分

    新手上路

    积分
    43
     楼主| 发表于 2011-8-8 00:08:00 | 显示全部楼层
    原帖由 金关村村长 于 2011-8-8 00:05 发表


    lz你的博客很慢


    he.net的Fremont挂掉,才刚恢复呢。。。

    13

    主题

    115

    回帖

    279

    积分

    中级会员

    积分
    279
    发表于 2011-8-8 00:08:37 | 显示全部楼层
    我今天中午还在楼主的博客里面看文章









    50

    主题

    4112

    回帖

    8466

    积分

    论坛元老

    积分
    8466
    发表于 2011-8-8 00:09:39 | 显示全部楼层
    技术贴,顶。。。

    93

    主题

    1929

    回帖

    4199

    积分

    论坛元老

    积分
    4199
    发表于 2011-8-8 00:16:20 | 显示全部楼层
    看了一阵楼主的博客

    364

    主题

    1468

    回帖

    4138

    积分

    论坛元老

    积分
    4138
    发表于 2011-8-8 00:16:36 | 显示全部楼层
    正文有错误,copy的?

    另外脚本的一个缺点:没有限制单线程运行收藏
    您需要登录后才可以回帖 登录 | 立即注册

    论坛客服/商务合作/投诉举报:2171544 (QQ)
    落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
    拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
    落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
    © 2001-2014

    浙公网安备 33060302000191号

    浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

      落伍法律顾问: ITlaw-庄毅雄

    Archiver|手机版|Discuz! X

    GMT+8, 2026-6-14 14:02 , Processed in 0.017440 second(s), 4 queries , Gzip On, Redis On.

    返回顶部