- 浏览: 147230 次
- 性别:
- 来自: 北京
文章分类
用expect自动ssh到远端机器执行命令
- 博客分类:
- linux
先说一下autoexpect,安装这个之后在命令行运行autoexpect -f xxscript.exp test.sh (加入test.sh是一个需要和用户交互的脚本),接下来按照提示输入,执行完成test.sh之后,打开xxscript.exp,运行xxscript.exp,可以不用交互直接执行test.sh。
有两个expect脚本可以解决自动到远端执行命令。
1。autoscp.exp,用这个脚本可以把需要执行的脚本先拷贝到远端的机器上,然后再调用下面的autossh.exp在远端机器上执行拷贝过去的脚本。
example: ./autoscp.exp $user $password $ipaddress $localDir/test.sh $remotedir
#!/usr/bin/expect set username [lindex $argv 0] set password [lindex $argv 1] set remhost [lindex $argv 2] set localfile [lindex $argv 3] set remotedir [lindex $argv 4] spawn scp $localfile $username@$remhost:$remotedir expect { "*re you sure you want to continue connecting*" { send "yes\n" expect { "*assword*" { send "$password\n" } } } "*assword*" { send "$password\n" } } expect eof
2。autossh.exp,用这个脚本可以执行远端机器上的脚本
example: ./autoscp.ssh $user $password $ipaddress "test.sh"
#!/usr/bin/expect set timeout 3 set username [lindex $argv 0] set password [lindex $argv 1] set remhost [lindex $argv 2] set command [lindex $argv 3] spawn ssh $username@$remhost $command expect { "*re you sure you want to continue connecting*" { send "yes\n" expect { "*assword*" { send "$password\n" } } } "*assword*" { send "$password\n" } } expect eof
发表评论
-
shell处理文件的方法(不用文件描述符)
2014-04-08 14:00 601readline (){ >$OUTFILE w ... -
用shell删除字符串的前后空格
2013-11-26 17:38 2872str=" hello world &quo ... -
给某个目录下面的文件改名
2012-03-27 14:59 894下面的代码展示了如何将某个目录下面的所有文件的后缀名改成需要的 ... -
typeset的用法
2012-02-23 17:57 2142typeset的用法,用-开启各个选项,用+关闭选项。 ... -
使用sed删除行首空格,tab
2012-02-19 20:32 1333sed 's/^[ \t]*//g' file sed 's ... -
使用文件描述符进行输入,输出重定向
2012-02-18 20:57 1858先看输入重定向,假设我们使用文件描述符3进行输入重定向: ... -
shell中的数组
2012-02-15 11:45 1001shell中支持数组,下面来看一下如何定义和使用它 1 ... -
shell中测试一个变量是否为空
2012-02-15 10:34 776来看下面的例子,注意双引号是必不可少的。 VAR= ... -
shell中删除一个文件中的空行/重复行
2012-02-15 10:25 2288首先看如何删除空行,用sed命令最简单 sed /^$ ... -
用sed在一个文件的每一行开头或者结尾添加内容
2012-02-13 20:57 4847例如,a.txt文件的内容如下: test1 tes ... -
shell中如何产生随机数
2012-02-13 20:51 1105例如,我们要产生1-100的随机数,如下脚本可以实现 ... -
shell中如何取得字符串的长度
2012-02-13 20:46 847字符串用变量VAR表示,则VAR的长度就是${#VAR} ... -
进度指示器
2012-02-13 17:54 936当执行一个比较费时的操作时,如果能在终端显示进度指示器,则对用 ... -
shell中逐行处理文件
2012-02-09 20:51 1483下面的代码展示了如何逐行处理文件 #!/bin/bas ... -
shell中大小写转换
2012-02-03 18:02 34303有两种方式: 1。用tr 例如:UPP ... -
用shell创建encryption key pairs(加密密钥对)
2012-01-24 18:04 1042shell可以远端执行命令,用下面的脚本可以创建加密密钥对,这 ... -
shell条件判断
2012-01-24 17:16 761一些条件判断 总结 ... -
学习vi系列(1)-全文替换
2012-01-19 18:42 4438可以把文件中的某个字符串替换成新的字符串,也可以加上正则表达式 ... -
Curl用法点滴
2010-11-16 15:41 13126CURL-命令行浏览器 Curl非常强大,完全可以作为一 ... -
linux下如何挂载一个磁盘
2010-05-19 15:26 1079execut the following command ...
相关推荐
运行脚本后,批量扫描主机自动执行ssh-copy-id,自动输入密码。完成批量主机ssh无口令配置
C# 利用Renci库来实现ssh客户端,可以执行ssh命令并获取返回结果。...通过创建ShellStream,执行命令后,使用Expect方法并配合正则表达式,可以获取到命令执行后的全部输出信息。 完整的Vs2008 C#代码,可编译和测试。
bash 调用expect ssh到cisco设备,通过tftp方式备份配置 已经测试通过,并上到生产服务器 前提要先架设好TFTP服务器并测试通过
expect配置单向ssh免密码登录
linux命令expect实现ssh登陆.docx
在ssshHost.sh脚本中封装expect的ssh登录自动填充密码功能
Linuxssh登录远程服务器 expect
注意:这里强调一下执行脚本时要注意的地方,不能按照习惯来用sh ***.sh来这行expect的程序,会提示找不到命令,因为expect用的不是bash所以会报错。执行的时候直接./***.sh就可以了。~切记! 应用二: 从...
本篇文章给大家介绍在Linux中使用expect脚本实现远程机器自动登录,前提是要创建一个expec脚本ssh_expect,接下来定义一些命令别名等,下面跟着脚本之家小编一起学习学习吧
安装Cygwin,安装上Tcl和Expect两个工具。 百度搜索:cygwin,在搜索结果中点击:Cygwin Installation 此刻,进入cygwin软件官网,根据自己操作系统,选择32位或64的setup 双击打开下载完成的cygwin,进入安装程序...
有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的...
本文主要介绍三种方法,在Mac下使用SSH连接远程Linux服务器。 方法一:使用终端 1.打开终端,点击新建远程连接 2.点击加号,然后添加自己服务器的IP地址 3.点击右侧的服务器,然后在下方输入用户名,选择最下方的 ...
expect实现 shell 交互式网络命令,插件安装: tar xzvf expect5.45.tar.gz cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic make make install ...
基于expect自动交互完成批量服务器磁盘空间使用量的查询脚本(使用前请先安装expect),文件包含一个 ip列表文件ipList 可执行脚本disk.sh expect脚本 解压并赋予可执行权限,更改ipList文件内的ip和密码,执行fdik....
相信大家在工作的时侯,可能会遇到要利用 ssh 在本地执行远程机器的命令可以便捷地处理某些重复工作,我们希望做到: 免手工输入密码 支持执行多个命令,执行 shell 脚本 支持执行 sudo 的命令 免手工输入密码 ...
ssh自动连接脚本,使用了expect自动化交互以及mail邮件提醒功能。本人亲自实践,希望有助于大家。
expect自动登录实战,主要讲述怎么安装、使用expect工具进行跨服务器的命令操作等,以及与shell脚本的结合使用案例。
参考了java版的expect4j,expectj的原理,进行了极大的简化,可完成基本的功能: 1,运行java代码,执行交互式命令 2,sudo提权,自动输入密码(echo "password" | sudo -S mkdir /opt/test)