expect 交互

本文介绍如何利用Expect脚本语言实现SSH连接过程中的自动化处理,包括自动输入密码和执行Sudo命令,以此提高远程管理和自动化部署的效率。

expect 

expect 是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录.

exp_continue         # 多个spawn命令时并行
interact             # 执行完成后保持交互状态,把控制权交给控制台
expect "password:"   # 判断关键字符
send "passwd\r"      # 执行交互动作,与手工输入密码的动作等效。字符串结尾加"\r"

  ssh 后 sudo

#!/bin/bash
#sudo注释下行允许后台运行
#Defaults requiretty
#sudo去掉!允许远程
#Defaults !visiblepw

/usr/bin/expect -c '
set timeout 5
spawn ssh -o StrictHostKeyChecking=no xuesong1@192.168.42.128 "sudo grep xuesong1 /etc/passwd"
expect {
    "passphrase" {
         send_user "sshkey\n"
         send "xuesong\r";
         expect {
              "sudo" {
                    send_user "sudo\n"
                    send "xuesong\r"
                    interact
                    }
                    eof {
                    send_user "sudo eof\n"
                    }
               }
         }
         "password:" {
                send_user "ssh\n"
                send "xuesong\r";
                expect {
                     "sudo" {
                      send_user "sudo\n"
                      send "xuesong\r"
                      interact
                      }
                      eof {
                      send_user "sudo eof\n"
                      }
                 }
          }
          "sudo" {
                 send_user "sudo\n"
                 send "xuesong\r"
                 interact
                 }
           eof {
                 end_user "ssh eof\n"
                 }
           }
           '

 

转载于:https://www.cnblogs.com/sharesdk/p/8710019.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值