#ssh远程登录查看磁盘
ssh root@192.168.1.3 "df -h"
#实现免密登录
ssh-keygen
#在当前用户的目录下生成一个密钥对
cat /root/.ssh/
#将公钥拷贝到要远程免密登录的机器上
ssh-copy-id root@192.168.1.3
#拷贝过去这样就可以免密登录了
ssh -i /root/.ssh/id_rsa root@192.168.1.3

#存放远程登录IP,用户,端口的一个文件,从这里调取
vim host.info
192.168.1.3 root 22
#!/bin/bash
#存放远程登录IP,用户,端口的一个文件,从这里调取
HOST_INFO=host.info
#^[^#]:除了带#的,其余都遍历,例如某台机器故障了;
#解释:循环遍历host.info文件中的第一列值(除#号开头的)
for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do
#解释:判断当前ip是不是host.info文件中第一列的值,如果是打印这个值对应的第二列的值
USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)
#解释:判断当前ip是不是host.info文件中第一列的值,如果是打印这个值对应的第三列的值
PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)
#解释:临时保存磁盘信息的一个文件
TMP_FILE=/tmp/disk.tmp
#解释:通过ssh -P 端口 用户名@IP远程登录查看磁盘信息,将它写进文件中
ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE
#OFS="="表示输出分隔符,以"="隔开;int($5)表示取整数,去掉%号;
#解释:打印disk.tmp这文件中以/dev/开头的这一行对应的第五列和最后一列的值
USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE)
#解释:循环遍历disk.tmp这个文件中的值
for USE_RATE in $USE_RATE_LIST; do
#解释:以=为分隔符,去掉=右边的值,*表示通配符
PART_NAME=${USE_RATE%=*}
#解释:以=为分隔符,去掉=左边的值,*也就是左边所有的值
USE_RATE=${USE_RATE#*=}
#解释:如果右边的值大于80% ,那么就告警
if [ $USE_RATE -ge 80 ]; then
echo -e "$IP \n Warning: $PART_NAME Partition usage $USE_RATE%!"
else
echo "YES"
fi
done
done