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

 

       由于经常需要从家里连到实验室的机器,但是中间需要一个中转,于是就需要连续两次进行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 )

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值