shell expect 教程

本文介绍如何通过Expect脚本实现SSH自动登录,极大简化了多服务器管理流程。使用该脚本可以轻松地向多个服务器分发文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

expect 是一个用来与终端交互的一个命令, 必须先安装才能使用, 我的系统是ubuntu 的直接apt-get install expect 就行了, 

expect 的关键字就四个    

expect --  期望输入

send -- 代码提交expect  的内容

spawn --单起一个进程, 比如ssh , scp,rsync等等

interact --这个允许用户交互

比如我要做一个ssh 登陆的简单脚本  login.expect

#!/usr/bin/expect

set timeout 30

set host [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]

spawn ssh $username@$host 

expect {
"yes/no" {send "yes\r"; exp_continue}
"*password*" {send "$passwd\r"}
}

interact


执行的时候 ./login.expect  10.236.152.10  zack  zack

就能登陆到152.10的服务器

有了这个命令,对于多个服务器管理就有有很大帮助, 比如要分发文件到N个服务器 直接添加 发送地址和接收地址用scp 或者rsync 发送即可.

非常方便.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值