首页
学习
活动
专区
工具
TVP
发布

Linux expect详解

Linux expect详解 2018-07-11 分类:Linux Shell / 系统运维 / 编程开发 阅读(6670) 评论(0)  随处可见的expect 第一次见expect这个命令还是我第一次参加全量上线的时候...先抛出一个问题 现在有两台Linux主机A和B,如何从A主机ssh到B主机,然后在B主机上执行命令,如何使这个过程实现全程自动化?...这就要用到今天这篇文章总结的expect了。 expect是什么? expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。...":设置变量; spawn ssh $username@$host:spawn是进入expect环境后才可以执行的expect内部命令,如果没有expect或者直接在默认的SHELL下执行是找不到spawn...如果没有这一句登录完成后会退出,而不是留在远程终端上。

3.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

# Linux expect命令详解

Linux系统中,expect 是一款非常有用的工具,它允许用户自动化与需要用户输入进行交互的程序。本文将深入探讨expect命令的基本语法、使用方法以及一些最佳实践。...linux-expect.jpg 什么是Expect命令? expect 是一个用于自动化交互式进程的工具。它的主要功能是根据程序的输出模式(patterns)发送输入,从而实现自动化交互。...expect eof': 这表示脚本会等待子进程的结束(eof 表示 end of file)。一旦子进程结束,整个 expect 脚本也就结束了。...错误处理 使用 expect_before 和 expect_after 处理在其他期望之前或之后出现的常见模式,提高脚本的健壮性。 以下是一个简单的expect脚本,用于自动化SSH登录 #!...expect "$ " send "ls\n" expect "$ " send "exit\n" 脚本执行过程如下 _20231202223700.jpg 总结 expect命令是Linux系统中一个非常实用的工具

18710

linux expect中的timeout设定

在做日志分析工具时,发现在屏幕上拿到日志结果会有点慢,然后查了一下expect ssh timeout的设置,原来是这里有个默认时间的问题,所以整理一下: expect脚本我们都知道,首先spawn我们要执行的命令...,然后就给出一堆expect的屏幕输出,如果输出match了我们的expect的东西,我们就会send一个命令上去,模拟用户输入。...但是expect中等待命令的输出信息是有一个timeout的设定的,默认是10秒。这个特性是防止那些执行死机的命令的。...一旦到了这个timeout,还是没有屏幕输出的话,expect脚本中下面的代码就会执行。或者我们在expect脚本中如果定义了timeout的响应代码的话,这些代码就会被执行。 ...解决这样的问题非常简单,最简单的办法就是在expect脚本的开头定义:  set timeout -1 -- 没有timeout set timeout XX -- 设定具体的timeout时间(秒)

3.5K20

Linux expect实现自动登录脚本实例代码

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。...但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。.../usr/bin/expect spawn ssh xxx@xxxxxx expect "*password:" send "密码\r" interact 再将【..../login.sh】配置别名alias,或移动到可执行目录中,即可实现【login】一键登录; expect是一个处理交互的指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作...~ expect有四个核心的指令: spawn:启动新进程,后跟新进程要执行的指令; expect:指定要监听的字符串,如果spawn进程返回了匹配的字符串(如标准输入的提示信息),则触发send; send

2.2K41

Linux 下自动应答工具 Expect 使用指南

Expect 恰恰填补了其中的一些裂痕,解决了在 Unix 环境中长期存在着的一些问题。 Expect 使用 Tcl 作为语言核心,不管程序是交互和还是非交互的,Expect 都能运用。...Expect 是在 Tcl 基础上创建起来的并且还提供了一些 Tcl 所没有的命令: spawn命令激活一个 Unix 程序来进行交互式的运行 send命令向进程发送字符串 expect命令等待进程的某些字符串且支持正规表达式并能同时等待多个字符串...在第一个行中,bogus 表示用户名是非法的,因此 passwd 会响应说:没有此用户。expect 在退出时会返回 3,3 恰好就是第二个域。...工具安装 源代码和下载地址都是由 Linux 软件基金会维护的(sourceforge) # 因为Expect需要Tcl编程语言的支持 $ sudo yum install -y gcc $ sudo...欢迎投稿,投稿邮箱: editor@hi-linux.com。 ? ?

1.5K20

expect快速入门

expect简介 expect是一个自动化交互式应用程序的工具,所以expect可以用来处理交互的命令。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。...---- expect脚本远程登录 以上简介中也提到了expect和shell类似,可以进行编程,接下来就实际的编写一些expect脚本来学习expect简单的使用方式。...如果你的系统没有安装expect,需要先安装expect,安装命令如下: yum install -y expect expect示例:编写一个自动远程登录脚本,expect编写的脚本文件后缀名为...echo 1212 > /tmp/12.txt [root@localhost ~]# [root@localhost ~/expectFiles]# 然后再来看看192.168.77.128机器上有没有...0 0 83 137 0 0 100 0 0 [root@localhost ~/expectFiles]# 提示:如果你将set timeout的值设置为-1的话,就表示没有超时时间

91320

expect命令在linux下实现批量ssh免密

有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候.../usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect "]#" {send "ls -la\...interact的作用很特殊,代表等待spawn命令结束,并且停留在241服务端进行继续交互,如果没有这个,那么有可能expect对应的刚匹配上还没执行send就已经结束了。..."} } expect "]#" {send "ls -la\r"} interact expect命令行参数 上面的expect脚本功能可能都达到了,为了避免有很多expect脚本,我更推荐使用expect...eof; " } for server in $SERVERS do sshcopyid $server done 以上就是本次介绍的expect命令在linux下实现批量ssh免密的全部过程

2.1K21
领券