运维脚本---------使用ssh远程登陆所有主机并检测

1、在监测端创建ssh公钥,并将公钥发送到所有被检测端

#命令行输入
ssh-keygen
#后面一直回车
#会在当前目录的./ssh下生成密钥对
#将公钥(id_rsa.pub)发送给被监控端
ssh-copy-id root@被监控端IP
#需要输入远程被监控端IP的密码,才能发送过去
#利用私钥登陆被监控端
ssh -i .ssh/id_rsa root@被监控端IP

 

 

2、创建一个host.info文件,并在其中存放被检测端的所有信息格式信息:

ip 用户名 端口号

3、自动远程登陆被监控端

# 1、获取磁盘使用率
# 2、监控多台磁盘使用率,利用ssh进行。一台作为服务监控端,其他作为被监控端。
# 3、配置免输入密码,监控端生成密钥,将公钥拷贝给被监控端,公钥一般存放在.ssh/id_rsa
#! /bin/bash
HOST_INFO=host.info
for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO);do
    USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)
    PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)
    TMP_FILE=/tmp/disk.tmp
    ssh -p $PORT $USER@IP 'df -h' > $TMP_FILE
    USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE)
    for USE_RATE in $USE_RATE_LIST;do
        PART_NAME=${USE_RATE%=*}
        USE_RATE=${USE_RATE#*=}
        if [ $USE_RATE -ge 80];then
        echo "Warning: $PART_NAME Partition usage $USE_RATE%!"
        fi
    done
done





#host.info 分为三列 ip列 用户名列 端口列

 

posted @ 2022-08-19 22:58  CiscoLee  阅读(162)  评论(0编辑  收藏  举报