#!/bin/bash
#计算CPU利用率的时间间隔。
CPUTIME=2 # 单位 s
#CPU限制,当系统使用CPU达到下面值时报警。
CPULIMIT=90 #单位 %
#内存限制,当系统使用内存达到下面值时报警。
MEMLIMIT=80 #单位 %
#磁盘监控。
ROOT=80 # / 分区使用限制。单位 %
VAR=90 # var 分区使用限制。 单位 %
HOME=90 # home 分区使用限制。单位 %
BOOT=80 # boot 分区使用限制。 单位 %
DATA=90 # data1 分区使用限制。单位 %
#计算网卡流量时间间隔
NETTIME=3 #单位 s
#1、系统基本信息
################################################################
echo -e "\033[32m###################### 主机名 ######################\033[0m"
echo Hostname: `hostname`
echo \ ;
echo -e "\033[32m###################### 系统时间 ######################\033[0m"
echo System_Now_Time: `date "+%Y-%m-%d %H:%M:%S"`
#获取系统时间也可以使用who -b
echo System_Boot_Time: `date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"`
echo \ ;
echo -e "\033[32m###################### 路由 ######################\033[0m"
route
echo \ ;
echo -e "\033[32m###################### Ip地址和网卡流量 ######################\033[0m"
#获取服务器的网卡和IP地址,以便在网卡流量监控时使用。
for Network in `ifconfig |awk -F : '/^[[:alpha:]]/{print $1}'`
do
FLOWA=/tmp/.$Network
grep $Network: /proc/net/dev|awk -F: '{print $2}'|awk '{print "INPUT " $1 " " "OUTPUT " $9}' > $FLOWA
#第一次获取网卡流量,单位字节
INPUTA=`awk '{print $2}' $FLOWA`
OUTPUTA=`awk '{print $4}' $FLOWA`
#获取网卡流量间隔时间
sleep $NETTIME
#第二次获取网卡流量,单位字节
grep $Network: /proc/net/dev|awk -F: '{print $2}'|awk '{print "INPUT " $1 " " "OUTPUT " $9}' > $FLOWA
INPUTB=`awk '{print $2}' $FLOWA`
OUTPUTB=`awk '{print $4}' $FLOWA`
#计算
#转换网卡流量单位为KB
INPUTC=`echo -e "$INPUTB-$INPUTA" | bc`
OUTPUTC=`echo -e "$OUTPUTB-$OUTPUTA"| bc`
INPUTMBA=`echo -e $INPUTC |awk '{printf "%0.3f\n",$1/1024}'`
OUTPUTMBA=`echo -e $OUTPUTC |awk '{printf "%0.3f\n",$1/1024}'`
INPUT=`echo -e $INPUTC |awk '{printf "%0.3f\n",$1/1024/1024}'`
OUTPUT=`echo -e $OUTPUTB |awk '{printf "%0.3f\n",$1/1024/1204}'`
#判断网卡流量使用量
if [ $INPUTC -le 1048576 ];then
if [ $OUTPUTC -le 1048576 ];then
echo Network_Card: $Network Ip: `/sbin/ifconfig $Network|grep "inet "|awk '{print $2}'` "输入流量: " ${INPUTMBA}K/S "输出流量: " "${OUTPUTMBA}K/S "
else
echo Network_Card: $Network Ip: `/sbin/ifconfig $Network|grep "inet "|awk '{print $2}'` "输入流量: " ${INPUTMBA}K/S "输出流量: " "${OUTPUT}M/S "
fi
elif [ $INPUTC -gt 1048576 ];then
if [ $OUTPUTC -gt 1048576 ];then
echo Network_Card: $Network Ip: `/sbin/ifconfig $Network|grep "inet "|awk '{print $2}'` "输入流量: " ${INPUT}M/S "输出流量: " "${OUTPUTMBA}K/S "
else
echo Network_Card: $Network Ip: `/sbin/ifconfig $Network|grep "inet "|awk '{print $2}'` "输入流量: " ${INPUT}M/S