效果图:
代码:
注意:
- 需要ssh免密,且默认端口是22,早期写的,忘记将端口设置成变量了。
- 颜色改变原则目前就是大于70黄色,小于70是绿色。
- 新增要监视的主机就是加脚本的最后依据,即:get_mem $IP &。
#!/bin/bash
clear
echo "--------------------MEMORY & DISK(used/total)---------------------"
function waitfun(){
a=1
while [ $a -lt 5 ]
do
for X in '-' '\' '|' '/'
do
printf "处理中\t[ \e[32m%s\e[m ]\r" "${X}"
sleep 0.3
a=`expr $a + 1 `
done
done
}
function get_disk(){
ip=$1
disk_used=`ssh -p 22 $ip df -h | grep /home | awk '{print $5}'`
disk_used_zhengshu=${disk_used/\%/}
}
function get_mem(){
ip=$1
total=`ssh -p 22 $ip free -t|grep Mem|awk '{print $2}'`
used=`ssh -p 22 $ip free -t|grep Mem|awk '{print $3}'`
used_sca_tmp=`echo "scale=6;$used/$total"|bc`
used_sca_zhengshu=`echo "scale=0;$total/$used"|bc`
used_sca=`echo "scale=2;$used_sca_tmp*100"|bc`
get_disk $ip
if [ $used_sca_zhengshu -lt 2 ] ;then
printf "\nMEM $ip [ \e[33m%s\e[m ]\r" "$used_sca%"
if [ $disk_used_zhengshu -lt 70 ] ;then
printf "\nDISK $ip [ \e[32m%s\e[m ]\r\n" "$disk_used"
else
printf "\nDISK $ip [ \e[31m%s\e[m ]\r\n" "$disk_used"
fi
else
printf "\nMEM $ip [ \e[32m%s\e[m ]\r" "$used_sca%"
if [ $disk_used_zhengshu -lt 70 ] ;then
printf "\nDISK $ip [ \e[32m%s\e[m ]\r\n" "$disk_used"
else
printf "\nDISK $ip [ \e[31m%s\e[m ]\r\n" "$disk_used"
fi
fi
wait
}
get_mem 62.64.41.134 &
get_mem 62.64.41.138 &
get_mem 62.64.41.139 &
get_mem 62.64.41.140 &
get_mem 62.64.41.141 &
get_mem 62.64.41.142 &
get_mem 62.64.41.143 &
get_mem 62.64.41.144 &
get_mem 62.64.41.145 &
get_mem 62.64.41.146 &