现在的位置: 首页 > 综合 > 正文

Linux下通过EXPECT脚本自动执行ssh远程连接 Linux下通过EXPECT脚本自动执行ssh远程连接

2018年01月26日 ⁄ 综合 ⁄ 共 1470字 ⁄ 字号 评论关闭

 

       由于经常需要从家里连到实验室的机器,但是中间需要一个中转,于是就需要连续两次进行ssh操作以及输入密码。加上家里网络不稳,经常会断,就又得重新登录。输入那么一长串的东西特别麻烦。于是觉得应该写一个脚本来自动登录,这样就可以带来极大的方便。

 原文链接: Linux下通过EXPECT脚本自动执行ssh远程连接

1 expect程序

  用的Ubuntu,本身没带expect,安装。

  sudo apt-get install expect

(关于expect,参见http://www.tclchina.com/article/translation/expect_tutorial/expect_1_cn.htm

   要从源码安装,参见安装 Tcl 和 Expect

 

2 写脚本 sample.script

   下面是简单的一个例子,把登录名和密码都显式地写在脚本里。

      上面的脚本中,spawn命令激活一个Unix程序来进行交互式的运行。send命令向进程发送字符串。expect命令等待进程的某些字符串。expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。expect还能理解一些特殊情况,如超时和遇到文件尾。

   如果希望脚本有一定的通用性,比如通过参数方式来输入用户名和主机地址。那么脚本可以象这样:

  这样执行的时候$argv 0 就是输入的第一个参数, $argv 1 就是输入的第二个参数


3  给脚本加上可执行权限

   chmod +x sample.script

   如果文件默认有其它权限,建议最好设置为只能自己读取,修改和执行

   chmod 700 sample.script

   接着就可以通过执行脚本进行远程登录了 ./sample.script

 

有不解的地方可以参考以下资料

-----------------------------------------------------------------------------------------------

参考资料:

1

expect中文教程

http://www.tclchina.com/article/translation/expect_tutorial/expect_1_cn.htm

http://www.tclchina.com/article/translation/expect_tutorial/expect_2_cn.htm

2

linux下ssh自动登录的脚本

3

嗯,给个完整的 expect 脚本的例子

++++++++++++++++++++++++++++++++++++++++++++++

相关文章:

Linux 脚本编写基础

Linux下通过EXPECT脚本自动执行ssh远程连接

安装 Tcl 和 Expect

Vista系统中的拒绝访问(Access Denied to Documents and Settings )

抱歉!评论已关闭.