作为一名服务器的小白白运维,没有人指导,没有关心,只有自己黑灯瞎火的摸着石头过河,希望在这条运维的路上,能碰到更多的志同道合的小伙伴,一路同行。
每天都是手动的去检查服务器的情况,好繁琐,也好没有技术含量的操作,一时冲动,就写个简单的脚本来实现:
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'
运行一下:
就是这样的效果了,应该再个发邮件到我这里,再加入到crontab里面
但是,好像阿里云的服务器是发不了邮件的,禁用了端口,小伙伴有更好的建议吗?
完毕!
以上内容就我的不成熟的一种写法,是不是很乱,哈哈!
我相信还有更好的、更精简的写法,欢迎小伙伴们批评指正!