1.expect实现参数传递1.1实现$argv参数数组expect脚本可以接受从bash传递过来的参数。可以使用[lindex$argvn]获得,n从0开始,分别表示第一个,第二个,第三个....参数1.2样例cattelnet.exp#!/usr/bin/expectsethost[lindex$argv0]setpasswd[lindex$argv1]setpasswden[lindex$arg..
分类:
其他好文 时间:
2016-05-10 23:57:21
阅读次数:
678
第一部分:expect讲解expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过exp..
分类:
其他好文 时间:
2016-03-09 07:10:25
阅读次数:
139
我们还可以传递参数$argv0是第一个参数,以此类推#!/usr/bin/expectsetuser[lindex$argv0]参数的固定写法,第一个参数。sethost[lindex$argv1]setpasswd"123456"密码也可以引用变量setcm[lindex$argv2]cm是执行的命令spawnssh$user@$hostexpect{"yes/no"{send"yes\r"}"password:..
分类:
其他好文 时间:
2016-03-09 07:09:59
阅读次数:
189
构建文件分发系统1.需求背景对于大公司而言,肯定时不时会有网站或者配置文件更新,而且使用的机器肯定也是好多台,少则几台,多则几十甚至上百台。所以,自动同步文件是至关重要的。2.实现思路首先要有一台模板机器,把要分发的文件准备好,然后只要使用expect脚本批量把需要..
分类:
其他好文 时间:
2016-03-09 07:08:32
阅读次数:
157
想在shell脚本里ssh连接到另外一台服务器后执行一些命令,但是不希望通过交互方式输入登录密码。主要的解决方法有三种:1.生成ssh公钥,建立和对方机器的信任关系;2.使用expect脚本;3.使用sshpass这里介绍一下sshpassyuminstallsshpass-y实例:[root@fsbin]#./sshpass-p12345..
分类:
其他好文 时间:
2016-02-21 18:45:33
阅读次数:
201
背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现一.在shell脚本中嵌入expect来实现密码输入expect是一个自动交互功能的工具。expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断...
分类:
系统相关 时间:
2016-01-16 01:31:23
阅读次数:
676
第一部分:expect讲解expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令...
分类:
系统相关 时间:
2015-10-04 22:15:55
阅读次数:
348
Linux使用expect脚本实现远程机器自动登录...
分类:
系统相关 时间:
2015-09-23 10:35:56
阅读次数:
187
之前我在写shell脚本中嵌套expect遇到了这样的问题,最后经过研究发现,在expect中的shell命令是需要转换才能生效的。否知错误百出,让人吐血不已。下面我讲解下我所遇到的问题。我要实现通过ping检测存活主机。如果存活将这个IP存入root/uphost.txt这个文件中。并且用expect免..
分类:
系统相关 时间:
2015-09-02 19:13:29
阅读次数:
755
实现真正的自动化,expect脚本语言使用expect中的几个重要句子:expect的核心是spawnexpectsendsetspawn调用要执行的命令expect等待命令提示信息的出现,也就是捕捉用户输入的提示:send发送需要交互的值,替代了用户手动输入内容set设置变量值interact执行完成后保持交互状态..
分类:
编程语言 时间:
2015-06-10 12:32:38
阅读次数:
183