linux系统下监控服务器状态, 包含很多项,本文主要讲解监测Linux服务器的CPU、硬盘、内存、网络接口、主板等硬件的工作状态。
如何监控硬盘
- 核心思想
使用指令 df 。 - 示例程序
#!/bin/bash
IP=` hostname -i `
HostName=` hostname `
disk_sda2=`df -Ph |grep /dev/sda2 |awk '{print $5}'|cut -f 1 -d "%" `
MailTitle="服务器硬盘报警";
if(($disk_sda2 > 90))
then
MailContent="Hi:<br>服务器$HostName($IP)硬盘分区SDA2使用率已经超过$disk_sda2%,请及时处理。";
php sendEmail.php $MailTitle $MailContent
fi
如何监控内存
- 核心思想
使用指令 free 。然后使用ps指令输出占用内存前10的进程。
注意free的结果,实际内存使用率是 18880/64420MB,内存分配率是29298/64420MB。 - 示例程序
#!/bin/bash
IP=` hostname -i `
HostName=` hostname `
MAX_mem=70
MAX_swap=70
total=`free -m|grep Mem|awk '{print $2}'`
memory=`free -m|grep Mem|awk '{print $3}'`
LocatedMen=`free | awk '/Mem/ {print int($3/$2*100)}'`
Mem=`free -m | awk '/-/ {print $3}'`
Usedtotal=`awk 'BEGIN{printf int(('$Mem'/'$total')*100)}'`
UsedSwap=`free | awk '/Swap/ {print $3}' `
if [ $UsedSwap -gt 0 ];
then
SWAP=`free | awk '/Swap/ {print int($3/$2*100)}'`
else
SWAP=0
fi
MailTitle="服务器内存报警";
if [ $Usedtotal -gt $MAX_mem -o $SWAP -gt $MAX_swap ]; then
`ps auxw|head -1;ps auxw|sort -rn -k4|head -10 > memory.txt`
MailContent="Hi:<br> 服务器$HostName($IP)内存使用率情况如下,请及时关注下。<br>  memory使用率已经超过$Usedtotal%,swap使用率已经超过$SWAP%。<br>  mem(buffer+cache)系统分配$memory MB($LocatedMen%),实际使用$Mem MB($Usedtotal%)<br> 具体内存占用top10进程见附件memory.txt。";
php sendEmail.php $MailTitle $MailContent
fi
如何监控CPU
待续。
如何监控网络接口
待续。
如何监控主板
待续。