加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,ex

发布时间:2020-12-14 03:20:23 所属栏目:大数据 来源:网络整理
导读:分发系统介绍 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就
分发系统介绍

expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。


expect脚本远程登录

yum install -y expect

自动远程登录

#! /usr/bin/expect
set host "192.168.85.132" #要远程登录的机器IP
set passwd "123456" #远程登录的机器密码
spawn ssh [email?protected]$host #登录机器的语句
expect {
"yes/no" { send "yesr"; exp_continue} #初次登录时需要输入yes才能进入
"password:" { send "$passwdr" } #当在远程登录时出现password:时自动输入密码
}
interact #作用:表示需要停留在远程的机器上,不需要退,如果不加就会退出来
            #如果是 expect eof 就会在机器上停留一两秒后退出来


expect脚本远程执行命令

自动远程登录后,执行命令并退出

#!/usr/bin/expect
set user "root"
set passwd "123456"
spawn ssh [email?protected]3.132

expect {
"yes/no" { send "yesr"; exp_continue}
"password:" { send "$passwdr" }
}
expect "]*" 
send "touch /tmp/12.txtr"
expect "]*"
send "echo 1212 > /tmp/12.txtr"
expect "]*"
send "exitr"

expect “]*” 表示图中括号里的,表示当检测到这个符号时就执行我们要执行的命令

远程登录机器执行命令后退出

远程的机器执行命令后创建的文本和内容


expect脚本传递参数

传递参数

#!/usr/bin/expect
set user [lindex $argv 0] #把第一个参数的值赋给user
set host [lindex $argv 1]
set passwd "123456"
set cm [lindex $argv 2]
spawn ssh [email?protected]$host

expect {
"yes/no" { send "yesr"}
"password:" { send "$passwdr" }
}
expect "]*"
send "$cmr"
set timeout -1 #-1表示永远不超时,1表示1秒,2表示2秒....,表示执行命令几秒后停止
expect "]*"
send "exitr"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读