背景:监控N台主机磁盘使用情况。已设置ssh证书连接。
需求:磁盘使用率大于等于80%,发送邮件到指定邮箱。
1、设置监控主机与其他主机的ssh的证书登陆
【监控主机】
ssh-genkey
ssh-copy-id 192.168.199.X 重复步骤手动发送私钥过去给其他主机。
2、主机信息文件
vim /root/shell_scripts/os.info
192.168.199.61 22 root
192.168.199.62 22 root
192.168.199.63 22 root
192.168.199.64 22 root
3、脚本
#!/bin/bash
USER_INFO_FILE='/root/shell_scripts/os.info'
WARNING_FILE='/tmp/disk.warning.file'
for IP in $(awk '{print $1}' $USER_INFO_FILE)
do
PORT=`awk -v ip=$IP '$1==ip{print $2}' $USER_INFO_FILE`
USER=`awk -v ip=$IP '$1==ip{print $3}' $USER_INFO_FILE`
DISK_INFO=`ssh -p $PORT ${USER}@$IP 'df -h' | awk 'BEGIN{OFS="="}$1~/^\/dev/{print $6,int($5)}'`
for b in $DISK_INFO
do
echo -e "${IP}磁盘使用情况:${b}%"
done
for a in $DISK_INFO
do
shuzi=${a#*=}
fenqu=${a%=*}
if [ $shuzi -ge 80 ];then
echo -e "${IP}的${fenqu}使用率已达${a}%,请进行处理" && echo -e "${IP}的${fenqu}使用率已达${shuzhi}%,请进行处理" >> $WARNING_FILE
fi
done
sleep 5
done
if [ $WARNING_FILE ];then
cat $WARNING_FILE | mail -s 'disk warning' xxxxxxx@qq.com
fi
rm -rf $WARNING_FILE