linux使用expect实现自动批量登录后执行指定命令

linux使用expect实现自动批量登录后执行指定命令

  • 可实现由a服务器自动登录b服务器(交互模式下,没有批量功能)
  • 批量登录后处理某些特定重复任务

安装expect

yum -y install expect

创建login.exp文件

  • 单独使用方式: expect autoSshLogin.exp $ip "$pwd"
#!/usr/bin/expect -f
set timeout 30

set _ip [lindex $argv 0]
set _user [lindex $argv 1]
set _pwd [lindex $argv 2]

spawn ssh $_user@$_ip
expect {
    "yes/no" { send "yes\r";exp_continue }
    "password:" { send "$_pwd\r" }
}
interact

# 最后的interact为等待用户自行交互。如无需交互,执行完后立即登出,则可替换成其他命令,如执行创建文件夹等
# 示例:
##        expect "*from*"
##        send "mkdir -p ./tmp/testfile\r"
##        #send "exit\r"
##        expect "#"

# 交互模式下,可实现

创建批量自动执行脚本batchExec.sh

#!/bin/bash

for i in `awk '{print $1}' loginInfo.txt`

do

j=`awk -v I="$i" '{if(I==$1)print $2}' loginInfo.txt`

k=`awk -v I="$i" '{if(I==$1)print $3}' loginInfo.txt`

expect login.exp $i $j $k

done

创建loginInfo.txt文件

10.0.0.3 root pass

最后使用sh batchExec.sh即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随猿Fa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值