运维脚本-------------------批量密码登陆多台服务器并执行命令

1、host.info文件格式

IP 用户名 端口号 密码

2、脚本

#! /bin/bash
COMMAND=$*
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)
    PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)
    expect -c "
       spawn ssh -p $PORT $USER@$IP
    expect {
       \"(yes/no)\" {send \"yes\r\"; exp_continue}
       \"password:\" {send \"$PASS\r"; exp_continue}
       \"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}
    }
       "
    echo "----------------"
done

 

posted @ 2022-08-21 23:00  CiscoLee  阅读(66)  评论(0编辑  收藏  举报