展开

关键词

crontab执行expect

crontab执行expect通过rsync的ssh差异备份方式同步地目录到远端目录,expect代码如下,命令行手动执行即可Expect代码  # cat expecttool  #!  7200;   spawn  usrbinrsync -avz -e usrbinssh pathtolocaldir remoteuser@remotehost:pathtoremotedir  expect assword* {          send paswordr;  }                       }  interact  如果要放到crontab任务中,需要把interact替换为 expect

53720

自动登录expect

vim 1.exp #! /usr/bin/expect set host "192.168.6.77" set passwd "12341234" spa...

49470
  • 广告
    关闭

    11.11智惠云集

    2核4G云服务器首年70元,还有多款热门云产品满足您的上云需求

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

    linux学习第六十九篇:分发系统介绍,expect远程登录,expect远程执行命令,expect传递参数

    分发系统介绍 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。 所以,这时候只要知道对方机器的账号和密码就可以通过expect实现登录和远程命令。 expect远程登录yum install -y expect自动远程登录#! expect远程执行命令自动远程登录后,执行命令并退出#! 远程的机器执行命令后创建的文和内容 ?expect传递参数传递参数#! ,表示执行命令几秒后停止expect ]*send exitr?

    499110

    expect中设置超时,比如下面的

    #指明命令交互结束 spawn scp source userName@hostName:dest                             #通过scp复制远程电脑的文件到expect 语句 (yesno) {send yesr;exp_continue} *assword: {send passwordr} } expect 100% expect eof exit 我想知道这个超时 10秒,是对所有的expect语句有效,还是只针对第一个啊? 如果超时限制对下面所有的expect语句都有效,比如下面的scp远程复制命令,如果数据没传输完,程序就超时了,那怎么解决呢? 那样的话expect 100%这句代码又有什么作用?? 我看到一种解释是:代码刚开始设定了timeout的时间为10秒,如果在执行scp任务时遇到了代码中没有指定的异常,则在等待10秒后该的执行会自动终止。这样理解对吗?

    1.4K30

    同时管理多台服务器的expect

    最近通过exploring expect书籍,简单学了下expect语言,这个语言是tcl语言的扩展,用来解决一些工具无法自动交互的问题,如ssh登录时,无法在命令就指定密码等。 下面是利用expect来实现管理多台服务器的简单例子:#! eof}1、这里定义了三台服务器192.168.0.100 192.168.0.101 192.168.0.102,定义了用户user1的密码为passwd1,用户user2的密码为passwd2,假如文件名为 ms,用法为:.ms 用户 命令如.ms user1 date2、在使用时,请确认系统已经安装有expect命令,centos使用yum install expect安装,ubuntu使用apt-get install expect安装。

    52150

    expect操作实例:跨服务器下载文件

    之前写过一篇文章利用expect实现交互式操控Linux简单介绍了下expect,也讲到为什么不用python来写,毕竟这个是在linux服务器上运行,不是每一台云服务器上都有python环境的 刚好,前段时间写的一个文件出了问题,今天来备注下解决方案。 需求:A服务器需要从B服务器某个目录下拉取文件,并获取所有文件名中的最大数字文件名,然后做一个符号链接。 一开始我是写了两个sh和一个expect来完成,但是迁移太麻烦了,所以利用expect的-c参数将其合并到一个sh中,其中需要拉取的文件名类似chain3.pem,fullchain1.pem 中,set用来设置变量,主要部分还是以spawn关键词启动一个拷贝命令,最后执行这个方法expect_func: # expect reply password and get all files ,我的方法是把所有文件名的字母及小数点都去掉,再倒序排列获取第一个值,那么它就是最大的;下文中,ls获取所有文件名,通过管道符 | 交给sed来处理,sed -e表明执行sg,其中s的用法为sregexpreplacement

    12360

    通过expect在H3C设备批量执行命令 By HKL,

    1.文主要记录了在Linux系统中使用自动化测试工具expect通过ssh登陆H3C设置并批量执行相同命令2.安装expect以ubuntu为例sudo apt install expect3.编辑expect 以ssh登陆H3C设置并配置AAA的服务为例expect.sh#! Please type yes or no #send yesr expect *password: send YourPasswordr #password123为ssh的登陆密码 expect * expect *a] send secondary accounting YourRadiusSecondaryIPr expect *a] send quitr expect *] send quitr expect *> send saver expect *YN] send Yr expect *): send r expect *YN] send Yr expect *> send quitr}

    30520

    expect实现Xcode对越狱设备的动态库注入

    这个时候我们可以使用expect来解决这个问题。expect expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。 你可以从利用expect命令实现Shell自动化交互的方法详解这篇中获取详细的expect的使用方法。 聪明的你是否想到了什么? 我们先暂停一下关于shell和expect相关的东西。 你是否希望第5步的操作通过来自动完成,而无需人工的干预呢?为了解决这个问题你是否又想到了借助expect来完成上述的功能!这就是下面要介绍的方法。 在Xcode 上引入expect我们在Xcode中添加expect来实现无交互的远程文件的拷贝的能力,从而快速的安装和运行Tweak插件。 因此只能将添加到Scheme 中的Post actions中,在这里添加的好处在于可以在构建完成后执行特定的。具体的处理如下:?

    27830

    linux学习第七十篇:expect同步文件,expect指定host和要同步的文件,构建文件分发系统,批量远程执行命令

    expect同步文件自动同步文件 #! yesr}password: { send $passwdr }} expect eof? expect指定host和要同步的文件指定host和要同步的文件 把机上的一个文件同步到远程机器上#! { send yesr}password: { send $passwdr }} expect eof? 实现思路 首先要有一台模板机器,把要分发的文件准备好,然后只要使用expect批量把需要同步的文件分发到目标机器即可。

    60790

    Shellexpect实现自动交互

    expect介绍expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的。 如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况expect主要命令spawn 启动新进程,用于执行shell命令send 发送字符串给expect控制的进程set 设置变量 set 从发起交互的命令的进程接受字符串,用于匹配我们预想的字符串exp_continue 继续执行接下来的交互操作set timeout -1 设置超时时间 永远等待set timeout 10 设置超时时间 10秒interact 将的控制权交给用户 ,用户继续使用shell执行命令$argv expect 可以接受从bash传递过来的参数安装expectyum install expect免密码通过SSH登录服务器# vim ssh.exp#! ; exp_continue } #exp_continue 未出现时继续往下执行password { send $pwdr } # r 是回车的意思}interact # expect ssh.exp

    48730

    使用expect运行动态(r6笔记第19天)

    ,所以单纯使用ssh来执行命令,第4,5步就没法完成,这个时候我们可以有几种思路来做,一种是通过连接工具录制,比如secureCRT录制一段,操作一遍之后,以后每次执行就需要重放即可。 如果受到工具的限制,或者觉得录制也不够动态,比如有100台服务器,我们就需要录制100个,查找,运行相比而言工作量还是不少,这个时候我们可以使用Linux中的expect命令来DIYexpect expect的交互方式有两种,一种需要以expect eof结尾,另外一种是interact结尾。 如果我给朋友送完东西之后就回家,朋友邀请吃晚饭也婉拒,这种方式就类似expect eof.我们来看几个简单的例子。我们假设下面的为test.sh需要在前声明 #! 只需要修改下面的两个部分即可,整个一下子就动态起来了。#!

    49140

    expect--自动批量分发公钥

    1.在使用之前,先安装epel源,yum install expect -y2.写分发,后缀为exp#! ;return}}expect eofexit -onexit { send_user Job has finished!} 注:set的作用是设置变量,spawn设置执行命令时,可以引用变量;变量的第一个参数为03.执行以下命令开始分发for ip in `cat rootip.txt`;do expect rootfenfa_sshkey.exp

    10310

    学习笔记0620----shell项目(分发系统)

    分发系统介绍2. expect 设置 2.1 expect登录远程机器 2.1.1 创建远程登陆2.1.2 测试2.2 远程登录执行命令 2.2.1 创建2.2.1 测试2.3 expect传递参数 2.3.1 创建2.3.2 测试2.4 expect同步文件 2.4.1 设置2.4.2 测试结果2.5 expect指定参数 2.5.1 设置2.5.2 yum install -y expect2.1 expect登录远程机器2.1.1 创建远程登陆# cd usrlocalsbin# mkdir expect# cd expect# vim # lsanaconda-ks.cfg rsync wenjian.txt# # 2.4 expect同步文件2.4.1 设置 expect eof 语句解释: spawn执行的命令结果,会被expect 指定参数2.5.1 设置# vim load4.expect #!

    11220

    分发系统——expect

    所以,这时候只要知道对方机器的账号和密码就可以通过expect实现登录和远程命令。 分发准备:模板、服务器IP、用户名、密码、expect20.18 expect远程登录使用expect前需要先安装:# yum install -y expect安装完成后就可以写expect 了。 expect远程登录:# vim 1.expect#! 20.29 expect远程执行命令# vim 2.expect#!

    19430

    expect快速入门

    expect的出现使得这些老的软件工具有了新的功能和更多的灵活性。 ----expect远程登录以上简介中也提到了expect和shell类似,可以进行编程,接下来就实际的编写一些expect来学习expect简单的使用方式。 如果你的系统没有安装expect,需要先安装expect,安装命令如下: yum install -y expect expect示例:编写一个自动远程登录expect编写的文件后缀名为expect ----expect远程执行命令除了能够实现远程登录外,还能实现远程执行命令,例如可以写一个自动远程登录后,执行命令并退出的:# vim telnet_2.expect#! ----expect传递参数expect也是可以像shell一样传递参数的,以下例子演示如何拿到的参数:# vim telnet_3.expect#!

    15420

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

    所以,这时候只要知道对方机器的账号和密码就可以通过expect实现登录和远程命令。 大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的实现一键登录 ~login.sh内容如下:#! 是一个处理交互的指令,通过expect我们可以把交互过程写到Shell里以实现一些自动化操作~expect有四个核心的指令:spawn:启动新进程,后跟新进程要执行的指令;expect:指定要监听的字符串 还可以完成如:批量更新git代码库、自动登录FTP等功能等~总结以上就是这篇文章的全部内容了,希望文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn

    23141

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

    有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yesno 或者password等,expect命令就是用于在提示这些的时候, 自动为我们输入相应的文字.expect先看一段shell,实现了ssh自动连接#! usrbinexpect而不是普通的bash那样spawn就是用来启动新的进程 expect “password” ,注意这个是expect里面内部的命令,代表用来等待进程反馈,可以接受字符串和正则表达式 ls -lar}interactexpect命令行参数上面的expect功能可能都达到了,为了避免有很多expect,我更推荐使用expect命令#! send exit r }; expect eof; 上面的shell功能和expect实现的功能一致,都是通过ssh登录进去后输入,ls -la 命令set timeout -1 设置超时时间

    35621

    详解自动交互命令expect,免去手动输入!

    #概述expect是一个用来实现自动交互功能的软件套件,是基于TCL的编程工具语言,方便学习,功能强大#扩展TCL:全拼为Tool Command Language ,是一种语言,由John Ousterout .send_user命令send_user命令可用来打印expect信息,类似shell里的echo命令#用法# cat send_user.exp #! guokeyoutiao. what hao#6.exit命令exit命令的功能类似于shell中的exit,即直接退出expect,除了最基的退出功能之外,还可以利用这个命令对做一些关闭前的清理和提示等工作 里的0、! 、在expect中argv表示参数数组,可以使用接收expect传参,n从0开始,分别表示第一个参数、第二个参数、第三个# cat test2.exp #!

    76230

    shell expect权威指南和实战

    工作原理 从最简单的层次来说,Expect的工作方式象一个通用化的Chat工具。 Chat由一系列expect-send对组成:expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。 引用:Login: somebody Password: sillyme Expect最简单的操作模式质上和Chat工作模式是一样的。 当得到特征字符串时,expect将发送bintcsh和 一个回车符给chsh命令。最后等待命令退出(chsh结束),一旦接收到标识子进程已经结束的eof字符,expect也就退出结束。 注意:(1)该没有使用spawn命令。(2)该expect会与任何调用该的进程交互。(3)如果该名为prompt,那么它可以用在任何C风格的shell中。

    18220

    Linux之expect交互语言命令

    ****前言**** 记得在去年在蝴蝶已经看到过expect,只不过没有去留意它是什么,是干什么的,然而今天去了解了,并利用它来写自动化交互。 *** expect是Linux编程工具语言,用来实现自动和交互式任务进行通信,从而不用手动处理。 usrbinexpect# ---------- 配置信息开始----------#变量set password heiheiPsd # expect设置 set timeout -1# ----- : 期望从进程接收到的字符串,后面也可以跟正则表达式spawn:启动进程set timeout -1 :运行超时(秒) -1不会超时----****与bash共用**** 从上面可以看出第一行已经指定了的解析器 ,但是很多时候或场景我们只希望expect作为shell的一个小小的调用部分,然而使可以的,这也是最常用的。

    43550

    扫码关注云+社区

    领取腾讯云代金券