shell expect settimeout超时问题 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
每次进步一点点——linux expect 使用
介绍<em>expect</em>是建立在tcl基础上的一个工具,它可以让一些需要交互的任务自动化地完成。相当于模拟了我们和命令行的交互操作。 n一个具体的场景:远程登陆服务器,并执行命令
shell嵌套expect执行命令
n rn rn一直都想把<em>expect</em>的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.rn  系统:centos 5.xrn rn1.先安装<em>expect</em>rnyum -y install <em>expect</em>rn rn2.脚本内容:rncat auto_svn.shrn rn#!/bin/bashrn passwd='123456'rn /usr/bin/e...
shell中嵌套expect实现ssh登录
我想在某台测试服务器上集中监控一些服务器的磁盘空间。但是又不想配置主机信任关系,怕不安全,公司不允许。因此想通过<em>shell</em>脚本中嵌套<em>expect</em>方式来实现。n一:安装<em>expect</em>n<em>expect</em>是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!n<em>expect</em>依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装。n n下载
expect中interact和expect eof使用的一些小问题
在设置数据库自动备份时,需要自动输入密码,使用了<em>expect</em>命令。第一版设置两个脚本为。 n/home/ccds/mysql.sh#!/usr/bin/<em>expect</em> -fnspawn /home/ccds/mysql1.shnset pass passn<em>expect</em> "password"nsend "$pass\n"ninteract/home/ccds/mysql1.sh#!/bin/bashnm
shell编程中常用的语句if,case语句,expect用法,脚本语句控制器break,continue的区别
一,if语句1,格式一:比较常用的格式(elif-then数量可以加)ifthenelifthenelsefi格式二:也会用到ifthenfi2,<em>shell</em>编程示例:判断文件是否存在,如果存在判断类型####    “common file”是一个整体,如果不加引号,那么会误以为这是两个参数!!!####[ ! -e &quot;$1&quot; ]是不等于,-e前面加上!和空格####   -eq是判断纯数字是否相...
expect获取返回值
对于获取多台服务器状态且不用交互需要用到<em>expect</em>,但有时候<em>expect</em>无法获取返回值,这里解释一下<em>expect</em>如何获取返回值rn  <em>expect</em> -c "rn    spawn $1;rn    <em>expect</em> {rn            \"(yes/no)?\" {send \"yes\n\";<em>expect</em> \"assword:\";send \"$2\n\"}rn           
容易忽略的expect脚本问题,暗藏的僵尸进程,wait命令不要漏掉
<em>问题</em>描述rn前几天有个小需求,用到<em>expect</em>脚本去循环的发送一些数据,主要<em>问题</em>代码如下:rn#! /usr/bin/<em>expect</em>rnwhile {true} {rn set timeout 60rn spawn telnet ip portrn <em>expect</em> &amp;quot;]'.&amp;quot;;rn send &amp;quot;***********一些数据***********\r&amp;quot;rn <em>expect</em> &amp;quot;*********一些回复*********...
shellexpect自动输入密码
通常在写<em>shell</em>时,使用scp、ssh时总要手动输入密码,是一件很烦人的事情,使用<em>expect</em>可以免手动数据的麻烦。nn有如下脚本里需要使用<em>expect</em>调到另一台服务器里做其他操作,代码如图:nn主要代码在下图73行nnn#bin/bashn#########n## GP项目需求的启动脚本n## 编写者:zqmn## 日期:2018-02-09n## 调用方式:nohup sh ...
pexpect 超时异常处理
TIMEOUTnnIf nothing matches an <em>expect</em>ed pattern then <em>expect</em>() will eventually raise a TIMEOUT exception. The default time is 30 seconds, but you can change this by passing a timeout argument to<em>expect</em>(...
记一次查openresty请求耗时问题 Expect:100-continue
最近开始对新上线的项目,做一些性能的优化和请求的耗时的监控ngx.now - ngx.req.start_time() 后端处理超过一秒的协议。这个过程中出现了一个让我很诡异的<em>超时</em>,某一固定的请求,偶尔会出现超过1s,经过加调试信息,最后定位到ngx.req.read_body()。再往里看就想不出什么了。这个时候想这个http请求难道和别的请求不一样?打印了ngx.req.get_headers(
expect 实现自动输入用户名和密码 && 使用shell 调用expect 脚本
1 首先,你得保证自己的服务器上已经安装了<em>expect</em> 的相关服务。“自动输入用户名和密码”--功能实现如下:#!/usr/bin/<em>expect</em> -f if { [llength $argv]&amp;lt;1 } {puts &quot;Usage:&quot;puts &quot;$argv0 local_file&quot;exit 1 }set local_file [lindex $argv 0]set password &quot;passw...
linux shellexpect自动交互混合编码
因为使用到sftp,只能用交互方式输入密码,但是人工交互又不方便,想考虑自动,查询资料发现<em>expect</em>方式可以实现一、安装<em>expect</em>root 权限下,yum安装命令:yum -y install <em>expect</em>二、#!/bin/bash npwd='123456'nls_date=`date +%Y-%m-%d`nexpire_me=&quot;R_rhp-report_ALL_daily_&quot;${ls_da...
shell脚本嵌套执行expect命令
为避免反复调用,可以嵌套执行nn相关命令: nspawn:启动一个程序或进程 nsend:给进程或程序返回结果 n<em>expect</em>:接受程序或进程输出 ninteract:使用户处于进程或程序的交互状态,ssh登录后不自动登出nn#!/bin/bashnnsql_bck=/home/sql_bcknif [ ! -d $sql_bck ]nthenn mkdir -p $sql_bcknfi
shell中使用expect进行远程执行命令
<em>expect</em>是用来实现自动交互功能的工具之一,使用<em>expect</em>-send来实现交互过程。nn注意:nn    1、脚本的执行方法与bash <em>shell</em>不一样,比如:<em>expect</em> example.shnn    2、向一个脚本传递参数时,bash <em>shell</em>是使用$1,$2...来接收参数的;而<em>expect</em>则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lin...
shell使用expect进行交互式操作
1. 环境安装以centos环境为例:a. 安装tclb.安装<em>expect</em>2. 安装controllerinstall.sh#!/bin/bash/usr/bin/<em>expect</em> -v &amp;gt; /dev/null 2&amp;gt;&amp;amp;1if [ $? -ne 0 ]; then    echo &quot;Please install <em>expect</em>.&quot;    exitfiif [ $# -ne 1 ]; t...
shell下使用expect遍历服务器
ips=(nip1...nip2...nip3...n...n)nfor ip in ${ips[*]}ndon/usr/bin/<em>expect</em>nset timeout 90nspawn ssh user@$ipn<em>expect</em> "passphrase"nsend "password\r"n<em>expect</em> "user"nsend "cd /dir\r"n<em>expect</em> "di
vue.js中settimeout遇到的问题(时间参数短效果不稳定)以及解决办法
先看效果图,这是弹窗效果,要求就是弹窗出现和消失时候不是很突兀,要有过渡效果。 n n首先看弹窗出现的实现思路,先加一个beforeActive类,再加一个active类。我们看审查元素,一开始display:none; n n在beforeActive中display:block;只是background: transparent;然后在一定时间后再加上active类。<em>问题</em>就来了,在打开弹窗代码...
shell笔记】-----shell脚本使用 expect指令实现ssh自动登录
n运用到虚拟机的时候,经常需要ssh root@192.168.1.1或者直接ssh 192.168.1.1,然后等待输入用户密码。这样下来,对于服务器运维每天要登录很多服务器,那么这一步骤就显得累赘。在学习网络中,用SecureCRT Application登录router/switch是很方便的,只需要将登录信息记录下来,下次即可直接登录。nn在Linux中<em>expect</em>就是一个处理交互的指令...
JS的超时调用(setTimeout())
setTimeout()接受两个参数:要执行的代码和以毫秒表示的时间。第一个参数可以是一个包含JS代码的字符串(和在eval()函数中使用的字符串一样),也可以是一个函数。如下:nnn//不建议传递字符串nsetTimeout(&quot;alert('hello')&quot;, 1000);n//推荐的方式nsetTimeout(function () {n alert(&quot;hello&quot;);n}, 1000);n...
expect调用shell命令或shell脚本
n<em>expect</em>调用<em>shell</em>命令nnn获取本机IP:nnnset idcid [exec sh -c {ifconfig eth0 | grep Mask | cut -d: -f2 | awk '{print $1}'}]nnn调用<em>shell</em>脚本test.shnnnset testResult [exec sh -c {./test.sh}]nn nnn参考资料:https://www.linu...
for循环中执行setTimeout问题
js执行机制,异步执行与作用域
Shell脚本交互 expect 和send指令
1 概述nn<em>expect</em>是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。<em>expect</em>需要Tcl编程语言的支持,要在系统上运行<em>expect</em>必须首先安装Tcl。nn2 <em>expect</em>的安装nnnsudo apt-get install <em>expect</em>napt-cache search tclnapt install tcl8.6-devnn3 例子nnn#!/usr/bin/e...
shell脚本嵌入expect和awk命令
网上查了好多资料 感觉也没怎么看明白 n主要是因为写了好几个版本 最后把能用的都改瞎了 看来还得再写几个别的 总结总结才好 n总之 注意几点: n1、<em>expect</em>代码块里面末尾需要写 ninteract(但是我写了这句话不太好使 可能是因为有EOF的原因?) n或 nsend exit\r n<em>expect</em> eof n2、<em>expect</em>代码块中像简单的send ls\r这种直接写就好了,遇到比较复杂的...
shell脚本自动化部署-如何向expect脚本里面传递参数
比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递 nssh.exp nPython代码 !/usr/bin/<em>expect</em>*set timeout 10 nset username [lindex argv0]setpassword[lindexargv 0] nset password [lindex argv 1] nset hos
shell脚本和expect脚本完成批量操作
下面是完成公钥分发的一个过程第一个方法[root@centos ~]# useradd test -u 9999 #增加名为test的用户,并且指定用户ID号为9999[root@centos ~]# echo &quot;test&quot;|passwd --stdin test #设置用户test的密码为 testChanging password for user test.passwd: all authe...
expect 嵌入shell的for循环中的方式对比
大家都知道<em>expect</em>是可以执行交互式命令的,例如:SSH等,当你有多台设备需要登录时,我们能不能使用类似java中的for循环来完成呢?下面我们来进行对比这两种方式:n1.nnnn#!/bin/sh  nnnnn  nnnnntest()  nnnnn{  nnnnn        <em>expect</em> -c "  nnnnn        l
shell编程】分发系统介绍、expect脚本远程登录、expect脚本远程执行命令和expect脚本传递参数
一、分发系统介绍后续补上二、<em>expect</em>脚本远程登录安装:yum install -y <em>expect</em>进入sbin目录创建1.<em>expect</em>文件,将以下内容复制到1.<em>expect</em>里面:赋予1.<em>expect</em>权限:chmod a+x 1.<em>expect</em> 自动远程登录脚本: #! /usr/bin/<em>expect</em>set host &quot;172.16.17.70&quot;set passwd &quot;123456a&quot;spawn s...
Linux进阶篇 Shell脚本编程进阶--数组、高级字符串操作高级变量以及expect用法
Linux进阶篇 Shell脚本编程进阶–数组、高级字符串操作、高级变量以及<em>expect</em>用法nn一、数组nnn变量:存储单个元素的内存空间 n数组:存储多个元素的连续的内存空间,相当于多个变量的集合 n数组名和索引 n  索引:编号从0开始,属于数值索引 n  注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持 n  bash的数组支持稀疏格式(索...
expect shell 发送组合键
在linux下面的组合键实际就是ASCII ,想要模拟某个组合键,在程序中发送这个组合键的ASCII即可,比如:CTRL-A的ASCII是 01; n下面是一段自动打开minicom程序,并设置输入回显。#!/usr/bin/<em>expect</em>nspawn minicomn<em>expect</em> "Press CTRL-A Z for help"nsend "\01" nsend "z"nsend "e"nint
Linux Shell 中的 expect 自动化编程工具语言,语句控制器及运算符。
Linux Shell 中的 <em>expect</em> 自动化编程工具语言,语句控制器及运算符。nn1. <em>expect</em>nnn n <em>expect</em> n 是一个免费的编程工具语言,建立在 tcl 基础上的一个工具,它可以让一些需要交互的任务自动化地完成。相当于模拟了用户和命令行的交互操作。 n nnnnn1.1 <em>expect</em> 安装及基本介绍nn安装nn <em>expect</em> 依赖于 tcl,所以需要首先安装 tc...
session 设置超时
设置sessionrn的时间防止考试rn      rn       300rn    rn rnJava 中设置rn这里要声明下要借助 Subject 这个类jar 包名称我贴下 rn--org.apache.shiro.subject.Subjectrn1、Subject currentUser = SecurityUtils.getSubject();//获取当前活动用户信息;rn  
shell -expect 批量免密码 拷贝数据 操作
 we need a script to call <em>expect</em> so that we don't have to enter the password on the system windows.nnSSH is a way which could operate other computers on linux, and the previous condition is that the o...
Shell脚本中调用expect,实现自动输入密码的功能
该脚本的源码是为了实现从远程的服务器上面拉文件到本机。nnn主要是为了实现自动输入密码的功能。nnn#!/bin/bashn<em>shell</em>Path=$(cd "$(dirname "$0")"; pwd)npid=0nnfunction check_process_exist(){n ps_out=`ps -ef | grep taskmanager | grep -v 'grep'`n resul...
Linux下使用Expect远程执行shell命令和脚本
rn摘自:http://blog.zheezes.com/<em>expect</em>-remote-execution-under-linux-using-<em>shell</em>-commands-and-scripts.htmlrn rn有几十台Linux服务器都要执行一组相同的操作,一台一台的登录上去执行不现实,只能是软件自动化的操作,而ssh本身是交互的,无法通过管道的方式进行输入,这就需要借助Tcl脚本和Exper...
liunx使用expect 实现远程执行 脚本
#!/bin/bash n#definednnn<em>expect</em> /usr/local/resourceShell/exekill.sh xxxx xxxxxnsleep 2n<em>expect</em> /usr/local/resourceShell/exekill.sh xxx xxxxxxx  代表向exekill.sh 传递的参数exekill.sh 内容如下:nnn#!/usr/bin/<em>expect</em>...
shell中的expect语句
<em>expect</em>nn<em>expect</em> 是自动应答命令,用于交互式命令的自动执行。n借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率 。nn参数含义及说明nnspawn 是 <em>expect</em> 中的监控程序,其运行后会监控命令提出的交互<em>问题</em>nsend,发送<em>问题</em>答案给交互命令n...
shell利用expect工具scp上传到服务器,并复制cp到其他目录
spawn激活一个scp的unix程序 nspawn ssh 和spawn scp后都接一个<em>expect</em>,交互密码,这里不用再手动输入密码。没有<em>expect</em>输入密码过程,上传和复制都不会完成。nn spawn ssh ${username}@${host}n <em>expect</em> {n &quot;yes/no&quot; { send &quot;yes\r&quot;; exp_continue }n &quot;password...
Linux_Shell 利用ssh, expect 在多个机器上执行指令
相关的基础指令介绍rnssh :     http://www.jb51.net/article/59255.htm  (ssh 命令 --》 远程终端执行指令部分)rn<em>expect</em> : http://blog.itpub.net/27042095/viewspace-745589/rnhttp://blog.csdn.net/u010842019/article/details/52072055
超时调用(setTimeout)和间歇调用(setInterval)
1.<em>超时</em>调用console.log(1);nvar timeouId = setTimeout('console.log(12)', 2000); // 不会阻塞,而是在多长时间后将此任务添加到任务队列,然后任务队列根据添加进来任务的先后顺序进行执行,故此处不一定是2s后执行。第一个参数可以是函数,也可以是字符串,此处尽量不要写字符串nclearTimeout(timeouId); // 可能导致立
linux 下使用expect编写shell 脚本交互访问远程服务器
linux 下使用<em>expect</em>编写<em>shell</em> 脚本交互访问远程服务器rn使用命令行登陆远程服务器一般需要ip地址以及登陆密码等,每次都手动输很不方便,<em>expect</em>可以满足自动输入密码。rn首先安装<em>expect</em>rn然后编写脚本rn然后修改权限rn最后运行脚本
shell日常练习——expect 实现百台服务器公钥推送
n 作者简介: n 陈志珂(头条号:强扭的瓜不好吃)目前就职于中国最大的安卓应用软件公司,任高级工程师,现在公司任php开发工程师,python开发工程师,高级运维工程师,公众号“铅笔学园”运维内容合作作者之一。 n 铅笔学园:IT资源分享|知识分享,做初级程序员的指明灯nnnnn#!/usr/bin/bashnn&amp;gt;ip.txtnnpassword=rootnnrpm -q exp...
shell脚本中使用expect实现scp传输问题
1.安装<em>expect</em><em>expect</em>用于<em>shell</em>脚本中自动交互,其是基于tcl编程语言的工具。所以安装<em>expect</em>首先安装tcl。本文中使用的是<em>expect</em>5.45和tcl8.6.6。安装tcl[root@tseg0 /]$ mkdir /toolsn[root@tseg0 /]$ tar -zxvf tcl8.6.6-src.tar.gzn[root@tseg0 /]$ cd tcl8.6.6/un
shell脚本expect预期交互
一、<em>expect</em>nn<em>expect</em> 是基于TCL开发的,(例如:scp,ssh,telnet等)主要应用于自动化交互式操作的场景,借助Expect 处理交互的命令,可以将交互过程如:ssh登录,scp 等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率。<em>expect</em>可以为交互式过程(比如FTP、SSH等登录过程)自动输送预先准备的文本...
linux——shell 中常用的控制语句 for、while、if、case、expect、exit、break、continue
一、 for 语句nnfor NUM in 1 2 3 nfor NUM in {1..3}nfor NUM in `seq 1 3`或者for NUM in `seq 1 2 10`ndondonennnnfor 语句演示nn[root@desktop27 mnt]# vim for.sh n[root@desktop27 mnt]# cat for.sh n#!/bin/bashnfor NU...
expect脚本嵌入到shell脚本
很多情况下需要交互的脚本,<em>expect</em>脚本便可以实现这个愿望。但还有的时候希望把<em>expect</em>脚本嵌入到<em>shell</em>脚本,以实现更多的功能。n#!/bin/bashn#Bash script for...nnecho &quot;Start ...&quot;nfor i in `seq 0 999`ndon{n<em>expect</em> &amp;lt;&amp;lt;EOFn puts &quot;\r&quot;n puts &quot;Create...$i&quot;n sp...
shell expect自动化创建用户,修改密码,多台机器一键免秘钥登录
1.创建用户–50台机器上创建用户,不可能手动去干的。nuseradd.sh中的代码:n#!/bin/bash nuser=cownpassword=cownuseradd -d /home/$user $usern<em>expect</em> << EOF nspawn passwd $user n<em>expect</em> "New password:" nsend "${password}\r" n<em>expect</em>
linux,scp传输文件用expect工具免密码输入shell脚本
<em>expect</em>是一个自动交互功能的工具。<em>expect</em>是开了一个子进程,通过spawn来执行<em>shell</em>脚本,监测到脚本的返回结果,通过<em>expect</em>判断要进行的交互输入内容(send)。简单举个列子说,我们用scp命令文件传输时候,需要我们输入所传输机器的root密码,一次两次可以,但是如果多次频繁操作就显得很麻烦。这时候就可以写个<em>shell</em>脚本,通过<em>expect</em>命令达到类似人机交互,自动输入密码的操作
shell脚本实现scp上传(expect交互),ftp上传
最近有两个需求,一个是每天定时从各个服务器下拷贝文件到一台挂有大磁盘的服务器,把每台服务器的文件区分拷贝过去并删除本服务器的文件。rn第二个需求是把挂有大磁盘的服务器上备份的文件通过ftp传送出去。(不要问我为啥不直接从各个服务器通过ftp传出去而要绕一层挂有大磁盘的服务器,因为ftp提供的太晚了。做第一个需求的时候还没有第二个需求)rn本来是做java开发的,但是公司没有服务器运维人员,所以自己
linux expect 判断项实现sftp目录创建和上传的功能
#!/usr/bin/<em>expect</em>n# 脚本名称: sftp.shn# 执行例程 <em>expect</em> sftp.sh '192.168.1.1' 'user' 'passwd' '/DXP/DATA/EDW/ROUT/BEIJING_2016-12-01.DAT' '/app/sftp/BCSS_FILE/BCSS/EC/201907'nnnif {$argc &lt; 5} {nnputs "Usa...
ant design/react 利用setTimeout解决表单还未加载,动态校验的问题
ant design/react 利用setTimeout解决表单还未加载,动态校验的<em>问题</em>n在写项目中出现一个<em>问题</em>,在表单中用一个A控件控制另一个B控件显示隐藏,当A控件切换的时候,同时校验B控件,这时候会出现B控件内就算有初始值也会检验报错, 因为当校验代码执行的时候,B控件还没有加载出来,因为两个操作都在同一个eventloop里.nhandleVisible() {n this.set...
shell嵌套expect执行screen命令
start.shnn#!/usr/bin/env bashnscreen_name1=$"online"nscreen -dmS $screen_name1ncmd1=$"php pushOnlineNum.php";nscreen -x -S $screen_name1 -p 0 -X stuff "$cmd1" #创建screennscreen -x -S $screen_name1 -p 0
scp远程拷贝expect实现SHELL
n在LINUX上,我们可以很方便的使用scp命令来远程拷贝文件,但是由于scp命令本身无保存密码选项,所以在<em>shell</em>里面无法像samba那样子保存密码,比较麻烦,下面介绍下两种实现方法。rn方法一:rnscp 远程拷文件,建议用搭配 ssh 方法:1: 在客户机上生成 ssh 需要的 rsa 密钥: ssh-keygen -t rsa2: 把生成的 id_rsa.pub拷到远程服务器用户的 .s...
shell脚本——expect命令
一、对<em>expect</em>的基本了解nn 我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而<em>expect</em>就使用来实现这种功能的工具。nn       <em>expect</em>是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。<em>expect</em>是不断发展的,随着时间的流逝...
shell expect免密码scp拷贝文件到另一台服务器
1.安装<em>expect</em>模块nnn$ yum install -y <em>expect</em>nn2.编写scp免密码登录脚本nnn$ vim /local<em>shell</em>/<em>expect</em>.shn#!/usr/bin/<em>expect</em> n#<em>expect</em>.shn#各院校应用备份同步一份到30.57,nset timeout 10nset src_file [lindex $argv 0]nspawn scp /hom...
【2018.04.08】expect中的循环与判断
#!/usr/bin/<em>expect</em>nputs &quot;---1---&quot;nfor {set i 0} {$i &amp;lt; 10} {incr i} {n puts &quot;I inside first loop: $i&quot;n}nnputs &quot;---2---&quot;nputs &quot;start&quot;nset i 0nwhile {$i &amp;lt; 10} {n puts &quot;I inside second ...
crontab定时任务不执行 expect
1. 路径要写全路径nn2. nnn#!/usr/bin/<em>expect</em> -f nnset filepaths [lindex $argv 0]nspawn scp -r root@ip:/usr/local/src/$filepaths /usr/local/src/mogondb_data_back/nn<em>expect</em> {n &quot;*yes/no&quot; {send &quot;yes\r&quot;; e...
SHELL脚本中的常用语句_(2)(expect及语句控制器)
1. <em>expect</em>nnn n <em>expect</em> n 是一个免费的编程工具语言,建立在 tcl 基础上的一个工具,它可以让一些需要交互的任务自动化地完成。相当于模拟了用户和命令行的交互操作。n nnnnn1.1 <em>expect</em> 安装及基本介绍nn安装nnnn <em>expect</em> 依赖于 tcl,所以需要首先安装 tcl 再安装 <em>expect</em>n yum install tcl -y n yum insta...
运维面经整理--代码篇--shell中的expect用法和shell编写监控
概述:nnnn<em>expect</em>是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。<em>expect</em>是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。简单的说,如果没有<em>expect</em>的话很多需要交互的场景我们就需要一直守在计算机前面进行输入,如果输入是主要步骤还好,我们输入完就结束任务了,那万一,我们有一个任务是在凌晨3点以root身份执行一个脚本呢,...
js中的setTimeout没有延时等待问题
setTimeout(this.getData(),2000);上面这个方法发现程序瞬间执行了,根本没有等待2秒解决办法是:setTimeout(this.getData,2000);
python, linux shell 使用expect模块自动输入密码
P<em>expect</em> 是一个自动控制的 Python 模块,可以用来ssh、ftp、passwd、telnet 等命令行进行自动交互。rn官方网站是 http://www.noah.org/rn通过它,可以实现类似 <em>expect</em> 的操作。rn例如我们可以用它来写python脚本,实现批量对一系列(大量的、配置相同的)的linux服务器进行操作。rnrn rnrn一、安装方式rn以root用户依次执行如下
shell脚本中使用expect实现telnet登陆路由器
n n n 查看原文:http://www.sijitao.net/1567.htmlnnExpect是基于TCL的,作为一个脚本语言,<em>expect</em>能在无需管理员参与的情况下实现自动交互(比如passwd,fsck,telnet等)。<em>expect</em>也能用于自动测试一些应用程序。nn这里博主以登陆路由器为例,先简单了解<em>expect</em>实现telnet自动登陆路由器的过程。当然也可以使用expe...
Linux无交互式shell 有root密码下使用expect执行root命令
linux下的<em>expect</em>命令是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。下文我们首先提出一个<em>问题</em>,然后介绍基础知四个命令,最后提出解决方法。nn在有的特俗情况下,比如只有web<em>shell</em>和root密码,而且没有任何办法反弹出交互式<em>shell</em>的情况下就可以借助<em>expect</em>切换到root用户后执行需
python 执行shell超时时间
nimport datetimenimport subprocessnimport timennnndef execute_command(cmdstring, timeout=None):nn if timeout:n end_time = datetime.datetime.now() + datetime.timedelta(seconds=timeout)nn s...
shell脚本利用expect实现scp免密传输
<em>shell</em>脚本实现scp传输n命令解释n-c 表示可以在命令行下执行except脚本;nspawn 命令激活一个unix程序来交互,就是在之后要执行的命令;n<em>expect</em> “aaa” 表示程序在等待这个aaa的字符串;nsend 向程序发送字符串,<em>expect</em>和send经常是成对出现的,比如当<em>expect</em>“aaa”的时候,send“bbb”。n执行脚本n#! /bin/shn<em>expect</em> -c "...
expect实现定时scp
大半夜的进行异机数据迁移,由于数据量比较大,导出需要几个小时。n为了节约时间,想导出后就把备份文件scp到目标机器上,又不想等,于是搞了个定时scp的脚本:nnn[root@BJ-FT-1F-121-30 hysjb_20_249_250]# cat scp.exp nset timeout -1nspawn scp 112.33.18.211:/apps/back/* .nmatch_max 1...
Linux expect使用摘要
<em>expect</em>交互,包括三个文件:bash文件、<em>expect</em>文件和一个ip列表文件rnrnbash代码:rnrn#!/bin/bashrnrnfor ip in `awk '{print $1}' ip.list` ##从ip.list中取iprndornecho -e &amp;amp;amp;amp;quot;\033[47;30m start get_NicSpeed of $ip \033[0m&amp;amp;amp;amp;quot; ##白底黑字显示rn<em>expect</em> -f expec...
Linux expect接收传参
nn#!/usr/bin/<em>expect</em>nnnset host [lrange $argv 0 0]nset port [lrange $argv 1 1]nset db [lrange $argv 2 2]nn执行<em>expect</em>脚本的命令为:nn<em>expect</em> create_database.sh node1 5432 zz1
expect-正则表达式-sed-cut的使用
<em>expect</em> 实现无交互登录n正则表达式nsed流编辑器ncut命令nn一、<em>expect</em>实现无交互登录n使用场景:n如果想写一个能够自动处理输入输出的脚本,那么<em>expect</em>是最好的选择,它可以用来做一些Linux下无法做到的交互命令操作n1、安装和使用<em>expect</em>nn[root@xuegod110 ~]# which <em>expect</em>n/usr/bin/which: no <em>expect</em> in (/u...
Linux下用expect实现ssh自动登录并执行脚本
rnLinux下用<em>expect</em>实现ssh自动登录并执行脚本rn rn<em>expect</em>不是系统自带的,需要安装:rn        yum install <em>expect</em>rn装完后才可执行以下脚本。rn rn ssh密码认证的登陆脚本:rn#!/bin/bashrnrn# 匹配提示符rnCMD_PROMPT=&quot;\](\$|#)&quot;rnrn# 要执行的脚本rnscript=&quot;/root/test.sh&quot;rnr...
react中运用JS中setTimeout时间计时的方法
&amp;lt;span id=&quot;clock&quot; style={{display:'block',fontSize:&quot;14px&quot;,paddingTop:'10px'}}&amp;gt;&amp;lt;/span&amp;gt;nn componentDidMount(){n function getTime(){n // const $this=thi...
运用shellexpect达到不同服务器之间的交互
一,export的命令详解n <em>expect</em> 的核心是 spawn <em>expect</em> send setnnspawn 调用要执行的命令n<em>expect</em> 等待命令提示信息的出现,也就是捕捉用户输入的提示nsend 发送需要交互值,代替用户手动输入的内容nset 设置变量值nset timeout 60 60秒<em>超时</em>nset timeout -1 永不<em>超时</em>ninteract 执行完成后保持交互状态。...
linux shell脚本交互式组件expect命令安装与使用
背景:<em>expect</em>命令可以使用在使用<em>shell</em>脚本时需要跟系统交互的场景,比如你安装一个软件,在安装过程中会提示是否需要安装某些小的组件,用户需要输入相应指令(e.g yes no)才会继续执行,此时其命令执行输出并未结束,因此需要使用<em>expect</em>命令来达到捕捉某个提示,并作相应处理,安装过程如下:nn首先安装其依赖包:tclnnwgethttp://nchc.dl.sourceforge.n...
利用expect + sftp 实现远程主机自动登录及下载
利用<em>expect</em> + sftp 实现远程主机自动登录及下载:nn#!/usr/bin/<em>expect</em> -fn## Create by Cyril.n## &amp;quot;Usage:./downFilesFromStation USER PWD RemoteIP SourcePath DownloadPath&amp;quot;nnif {$argc&amp;amp;lt;5} {n puts stderr &amp;quot;Usage:./do...
expect超时
#!/usr/bin/<em>expect</em>rn#主脚本为其他<em>shell</em>时,执行此子脚本,要注意:<em>expect</em> 脚本名;不能直接./脚本名rn#下面每个{}都要注意前后与值之间都有空格=》不注意这个会很晕菜的。。rn#最后要加<em>expect</em> eof,否则会立即结束rnrn#每次<em>expect</em>都会重新计算timeout,每次<em>expect</em>前都可以指定不同的timeoutrnrnrnset timeout 20rns
setTimeout 导致的浏览器假死
rn rn setTimeout 导致的浏览器假死rn rn rn rn  <em>问题</em>rn   前几天,同事遇到一个浏览器假死的<em>问题</em>。就是浏览器在响应一个请求的时候,就突然不响应时间,进入假死状态,Cup也飙升到100%. 但是这个<em>问题</em>只出现在IE浏览器,chrome和Firefox等其他浏览器正常。rn原因rn  Js 代码里面,看着也没有什么耗时的操作和后台异步调用。没办法,只能从响...
shellexpect的初步使用
想用rsync同步两个服务器的日志,但是又不想弄密钥做验证 于是想到直接用<em>shell</em>自动输入账号密码来连接另一台服务器rn脚本第一行#!/usr/bin/<em>expect</em>rn表示使用<em>expect</em>进行处理rn脚本本身需要赋予执行权限才可以执行<em>expect</em>rnchmod 777 <em>expect</em>Test.shrn然后才能通过./<em>expect</em>Test.sh执行rnrnrn通过  <em>expect</em> "需要检测的控制台
Expect安装方法
Expect是基于Tcl语言的一种脚本语言,其实无论是交互还是非交互的应用场合,Expect都可以大显身手,但是对于交互式的特定场合,还非Except莫属。rnrn[b]第1步:使用root用户登录[/b]rn rn[b]第2步:复制安装文件[/b]rn rn 在合适的位置创建一个文件夹,例如softrn 修改文件夹读写权限rn chmo...
curl时设置Expect的必要性
n n n n原文:https://www.fanhaobai.com/2017/08/curl-<em>expect</em>-continue.htmlnncurl 在项目中使用频率较高,比如内部接口、第三方 api、图片存储服务等,但是我们在使用 curl 时可能并没有注意到 Expect 这个请求头信息,而 Expect 设置不正确,会导致不必要的一次 HTTP 请求,甚至可能...
expect实现SSH首次登录的自动交互 及 ssh免密登陆
一-创建公私钥ssh-keygen# ls /root/.sshauthorized_keys  id_rsa  id_rsa.pub cat /root/.ssh/id_rsa.pub  &amp;gt; /root/.ssh/authorized_keys二-Are you sure you want to continue connecting (yes/no)?避免提示输入yes/no修改vim ...
【转】expect语法基础: while、for 循环、if 语句的用法示例
n==两种for循环的写法rnfor {set i 0} {$i&amp;lt;=10} {incr i} {#i默认增量是1,即等价incr i 1。注意这个反括号一定要写在这行行末:args: should be &quot;for start test next command&quot;rn............rn.............}rnrnQ:能不能改为i为我指定的几个数就好。比如我指定i为 3 5 6...
expect实现远程交互scp,ssh
<em>expect</em>实现远程交互scprn1. 在ubuntu环境下,首先需要安装<em>expect</em>rnsudo apt-get install tcl tk <em>expect</em>rn2. 写<em>shell</em>脚本rnvi scpTest.shrn写入下面的内容:rnrn#!/usr/bin/<em>expect</em> -fnset password 123456nset timeout 3600 nspawn scp -p usernam
shell学习之四---expect命令
<em>expect</em>可以实现<em>shell</em>实现不了的用户交互的需求。<em>expect</em>可以将交互写在一个脚本上,完成很多自动化的动作,比如ssh、ftp登陆等,都是需要交互需求的。<em>expect</em>是需要安装的,直接yum  -y install <em>expect</em>安装即可。nn<em>expect</em>的四个关键命令为:spawn、<em>expect</em>、send、set,其中spawn是调用要执行的命令,<em>expect</em>是等待命令提示信息的出现也
通过shell配合expect自动输入账号密码登陆ssh或ftp
最近经常需要通过SSH和ftp连接到腾讯云的Linux服务器,每次都需要输入账号密码,实在是太麻烦了,于是就查了一下自动化的方式。nExpectExpect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允
Linux expect、正则表达式和sed的使用
实战:<em>expect</em>实现无交互登录 正则表达式 sed awk awk高级应用 cut
使用expect自动化完成集群SSH信任关系的建立
n将以下脚本存成文件,并修改其权限nn$ chmod 775 establish-ssh.shnnn在同一目录下新建servers.txt文件,并填入相关IPnnlinyimin@:capra(master)$ cat servers.txtn192.168.121.10n192.168.121.11n192.168.121.12n192.168.121.13n192.168.121.14n192...
setTimeout、setInterval。其第三个参数和this的讨论,超时嵌套和内存泄漏
setTimeout和setInterval函数的第三个参数本来只是定义语言类型,后来在非IE浏览器下支持传递参数,并且在不同浏览器下支持的不同。rnrn原来的setTimeout函数定义:rnvar timeoutID = window.setTimeout(func, delay[, lang]);rnrn在Chrome和FF下定义被修改:rnvar timeoutID = window.se
自动登录跳板机的shell脚本 expect ssh
需求n有n台服务器,只需要执行一个命令即可自动登录,而不需要再手动输入密码。n网上的方法n网上很多 <em>expect</em> 的教程,但是里面只是写死了一两个服务器而已,因为他们使用的头部是 #!/usr/bin/<em>expect</em>,里面不能加入<em>shell</em> 的运行命令。如果是n台或者多台服务器,这种方式是执行不了的。所以需要能让<em>shell</em>命令和 <em>expect</em>命令共同运行才行。n解决方法n使用一个<em>shell</em>脚本,里面...
expect 自动填充密码
它的脚本以#!/usr/bin/<em>expect</em>开头,执行时用expoct,而不是bash。我的一个给samba自动创建用户并且自动填写默认密码的脚本如下:nnnvim smb_passwd.expn#!/usr/bin/<em>expect</em>nset password &quot;123456&quot;nspawn pdbedit -a -u [lindex $argv 0]  #由命令行写入参数nset timeout 20...
expect经跳板机进入目标机器
开发机IP 10.1.1.182rn跳板机IP 10.1.1.7rn线上机器IP 10.30.16.238rn现要从开发机经过跳板机进入线上机器 从开发机进入跳板机 需输入用户名和密码 从跳板机进入线上机器 又要输入一次用户名和密码rn而且这种操作对于程序员来说比较频繁 会消耗不少的时间  在此做一个自动从开发机进入线上机器的<em>shell</em>脚本 以此节省时间rn脚本内容如下rnfilename: go
git自动拉取代码
第一种方法nn现在有2台服务器nnA服务器:git仓库nnB服务器:开发环境nn需求:当提交代码到git仓库的时候   开发环境可以自动pull代码。nn现在需要在A服务器git仓库里写一个钩子 post-receivennn#!/usr/bin/<em>expect</em>nspawn ssh root@123.123.123.113n<em>expect</em> &quot;*password:&quot;nsend &quot;abcdefghUFi+...
for循环中的setTimeout问题
n 原创内容,转载请标记出处:https://blog.csdn.net/yihanzhi/article/details/79565628nnn//for循环1nfor (var i = 0; i &amp;lt; 3; i++) {n setTimeout(function () {n console.log(i);n },0);n}n//for循环2nfor (var i...
expect脚本实现批量ssh互信
搭Hadoop时候需要配置多节点ssh互信,节点数量多了,手工配起来就很麻烦。网上有很多自动配置ssh互信的脚本,但基本都不能直接用。今天摸索了下,自己写了个简易版,测试还能用,在这里分享下。1、每个节点安装<em>expect</em>包rnyum install <em>expect</em> -yrn2、将auto_ssh.sh及ip.list 拷贝至每个节点需要建立ssh的用户下,我这里拷贝至hadoop的家目录rnauto
一个简单的expect登录脚本
分布式系统现在已经出现了微服务这样的概念,所以我们的系统都是有好多台机器,所以我们不得不进行相应的连接脚本的优化。nn首先必须建立相应的链路追踪,这个链路追踪上必须指明是哪一台机器去做,这样我们就可以直接去追踪服务的调用链。第二服务的日志需要分层级进行打印,这样我们可以去相应的日志文件上找到相应的内容即可,但是<em>问题</em>是日志文件的内容需要相应地规范和标识,否则无法知道去哪个文件读取日志,当然也可以有一...
shell脚本之 对于 非ssh expect 免密登陆问题
背景:一般为了安全hadoop生产集群与公司其他服务器不能ping,不能互相ssh免密登录的。绝大多数是hadoop集群服务器可以有账号密码可以登录到其他服务器,但其他服务器,不可以登录到公司hadoop集群服务器。业务需要 从一台非业务服务器上scp拉取数据,这时用到 <em>expect</em>远程登录nn先看有无 安装  rpm -qa |grep <em>expect</em>nn有略过此步骤,没有 安装  yum ins...
expect转义符及远程主机执行命令
<em>expect</em>介绍<em>expect</em>-send对:<em>expect</em>等待输出并判定特定的字符,通常是提示符,当字符匹配,则send下一步的操作;若字符与<em>expect</em>期望的输出不一只时,往往会报错退出。 n<em>expect</em>不支持太复杂的命令,一般都是按照既定的返回执行下一步的操作,比较呆板,但很多时候还是很有用的<em>expect</em>的转义符/逃逸符在命令send时,往往有写特殊字符需要进行转义:1.” 对应转义字符: \\”
用setTimeout来处理XMLHttpRequest对象的请求过期
在XMLHttpRequest对象中,我们所熟知的一个readyState状态值就是4,它表示响应完成,然而并没有哪个值告诉我们响应过期,一旦响应过期,浏览器看上去就像挂起,大家应该都遇到过,就像是死机了。这种状况我们可以用setTimeout()方法来解决,一旦请求失效,就向用户提醒过期信息。下面是具体的实现方法:一. setTimeout函数的功能 n(1)使用方法var timer = set
设置PDF文档属性.rar下载
设置PDF文档属性.rar设置PDF文档属性.rar 相关下载链接:[url=//download.csdn.net/download/zhx0301/2509413?utm_source=bbsseo]//download.csdn.net/download/zhx0301/2509413?utm_source=bbsseo[/url]
解析menu.xml下载
解析menu.xml,将树形菜单解析过滤生成java类,在jsp显示出来 相关下载链接:[url=//download.csdn.net/download/luckwolf06/2543964?utm_source=bbsseo]//download.csdn.net/download/luckwolf06/2543964?utm_source=bbsseo[/url]
WinGnuRegex2.7 window工程版下载
修改regex.c为regex.cpp 使用c++编译器 修改?:语法,以及函数定义语法 解决所有int unsigned int的warning 替换getenv为dupenv_s 相关下载链接:[url=//download.csdn.net/download/heartrude/2979864?utm_source=bbsseo]//download.csdn.net/download/heartrude/2979864?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 shell大数据处理教程 区块链问题
我们是很有底线的