shell脚本实时监控阿里云服务器的CPU-内存-磁盘使用情况

         作为一名服务器的小白白运维,没有人指导,没有关心,只有自己黑灯瞎火的摸着石头过河,希望在这条运维的路上,能碰到更多的志同道合的小伙伴,一路同行。

        每天都是手动的去检查服务器的情况,好繁琐,也好没有技术含量的操作,一时冲动,就写个简单的脚本来实现:

cat cmd.sh

#! /bin/bash

mem_total=`free -m | awk -F '[ :]+' 'NR==2{print $2}'`

mem_used=`free -m | awk -F '[ :]+' 'NR==2{print $3}'`

mem_free=`free -m | awk -F '[ :]+' 'NR==2{print $4}'`

cpu=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $3}'`

cpu_sys=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $5}'`

cpu_id=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $9}'`

uptime_use=`uptime | cut -b 32-38`    # 灵活数字

uptime_sys=`uptime | cut -b 56-71`     # 灵活数字

DISK=`df -hP | grep -v 文件系统 | grep -v Filesystem | awk '{print $5,$6}' | awk -F "%" '{if ($1>=80) {print $2,$1"%"}}'`    # 灵活数字

DISK_1=`df -hP | grep -v 文件系统 | grep -v Filesystem | awk '{print $5,$6}' | awk -F "%" '{if ($1>=50) {print $2,$1"%"}}'`   # 灵活数字

 

#检查内存使用情况:

#系统平均负载:单核CPU情况下,0.00 表示没有任何负荷,1.00表示刚好满负荷,超过1侧表示超负荷,理想值是0.7;

#多核CPU负载:CPU核数 * 理想值0.7 = 理想负荷,例如:4核CPU负载不超过2.8何表示没有出现高负载

 

echo ""

echo -e "\033[32m1、系统----当前连接的用户:$uptime_use  1,5,15分钟系统的负载情况:$uptime_sys\033[0m"

echo ""

 

if [ $mem_used -ge 3000 ]; then

    echo -e "\033[32m2、小伙子!!!内存使用:$mem_used M ,超过80%了  总内存才:$mem_total M    空闲的才:$mem_free M  检查一下有哪些异常的进程咯!\033[0m"

    echo ""

else

    echo -e "\033[32m2、内存----使用正常,没有超过80%,现在的使用:$mem_used M   总内存:$mem_total M   空闲:$mem_free M\033[0m"

    echo ""

fi

 

#检查CPU使用情况:

 

if [ $(echo "$cpu >= 60" |bc) = 1 ]; then

    echo -e "\033[32m3、混蛋!!! CPU:$cpu 都爆了!!!   还不赶紧检查一下!\033[0m"

    echo ""

else

    echo -e "\033[32m3、CPU-----使用正常,没有超过60%,--------实时:CPU:$cpu     sys:$cpu_sys    id:$cpu_id--------\033[0m"

    echo ""

fi

#检查磁盘使用情况:

if [ "$DISK" = "" ]; then

    echo -e "\033[32m4、磁盘----各文件系统使用正常,使用率均没有超过80%! --------实时:$DISK_1--------\033[0m"

    echo ""

else

    echo -e "\033[32m4、磁盘----空间使用率超过80%的目录及使用率:$DISK ,请释放一些空间!\033[0m"

    echo ""

fi

 

在/etc/bashrc加一个简化的命令:alias cmd='sh /root/log/cmd.sh'

运行一下:

shell脚本实时监控阿里云服务器的CPU-内存-磁盘使用情况_第1张图片

 

就是这样的效果了,应该再个发邮件到我这里,再加入到crontab里面

但是,好像阿里云的服务器是发不了邮件的,禁用了端口,小伙伴有更好的建议吗?

完毕!

以上内容就我的不成熟的一种写法,是不是很乱,哈哈!

我相信还有更好的、更精简的写法,欢迎小伙伴们批评指正!

你可能感兴趣的:(小白白)