收藏文章 楼主

Linux - expect交互自动化远程登录脚本, 安装 sshpass

版块:自动化运维linux   类型:普通   作者:小绿叶技术博客   查看:1852   回复:2   获赞:3   时间:2020-08-18 14:38:25

# 下载 yum 源并安装sshpass

yum install -y wget ; wget http://mirrors.aliyun.com/repo/epel-7.repo ; mv epel-7.repo /etc/yum.repos.d/ ; yum list ; yum install sshpass

yum install -y expect

# interact [ˌɪn(t)ərˈækt] 互动



#---------- 使用expect交互工具登录ssh ---------#

#!/bin/bash

yum install -y expect

                # 安装交互工具包

set timeout 30

                # 设置匹配字符的等待时间

/usr/bin/expect << EOF

                # 执行交互程序,通过EOF 打包给程序

spawn ssh root@hc2.ssh.gs

                # 进行远程连接服务器

expect "password:"

                # 匹配密码提示

send "aA20200930\r"

                # 输入密码并换行

expect "#"

                # 登录成功后匹配符号 #

send "echo '登录成功' \r"

                # 执行打印命令并换行

expect eof

                # 匹配结束

exit

                # 退出

EOF

                # 总打包结束
















#!/usr/bin/expect -f

set port 22

set user root

set host eisc.cn

set password xxxxxx

set timeout -1

spawn ssh $user@$host

expect {

"*yes/no" { send "yes\r"; exp_continue}

"*assword:" { send "$password\r" }

}

expect "*#*"

send "ip a > /root/ip.txt \r"

send "exit\r"

interact

spawn scp $host:/root/ip.txt /root

expect {

"*yes/no" { send "yes\r"; exp_continue}

"*assword:" { send "$password\r" }

}

expect eof


获取登陆成功的主句IP地址

cat /root/ip.txt | grep inet | grep broadcast | awk -F" " '{print $2}' >> ip.txt ; cat /dev/null > ip.txt


提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:Linux - expect交互自动化远程登录脚本, 安装 sshpass

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息