快速业务通道

小女生的Linux技术~~~自动化管理 远程登录

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16
回的字符串来决定下一步的操作;而 spwan 命令可以发起一个进程的运行. send 命令接收一个字符串做为参数并发送给指定的进程;从 send “Hello world” 这行代码中,send 会送出字符串“Hello world”( 不带引号 ).如果 Expect 早已经开始与某一个程序进行交互,那么这个字符串将被发送给该程序;而在通常情况下,这个字符串会被送到标准输出设备. expect 命令则等待一个响应,通常是来自于 Expect 正在与之交互的进程,或者来自于标准输入设备;它会等待一个指定的字符串或者满足给定的正则表达式的任何字符串.我们可以创建一个名为 response.exp 的文件,来看 Expect 是如何处理的,其内容如下: #!expect – f expect “hi\n” send “hello there\n” 然后在 shell 下面运行 ”expect response.exp”,它会等待来自标准输入设备的响应,直到用户输入 hi 并回车,它才会发送”hello there”到标准输出设备,并回车.然后结束 expect 脚本的运行.但是,如果用户没有输入 hi 并回车,那么 expect 会继续等待”hi\n”;输入其他的字符并不会影响到 expect 的工作.通常情况下,expect 会一直等会输入,直到最终超时退出.此外, expect 还支持使用正则表达式来预防 expect 匹配到未预想到的输入数据. spawn 命令会调用另一个程序.它的第一个参数是要启动程序的名字;剩余的参数则会被传递给该程序做为参数.比如 spawn ftp linux.ibm.com">ftp.linux.ibm.com 命令会衍生出一个 ftp 进程,并且将 ftp.linux.ibm.com 做为参数传递给这个 ftp 进程. 用户通过 spawn,send 和 expect 这三个基本命令,就可以编写一段 Expect 程序来实现自动化工作. Expect 脚本实现 本节将利用基于用户口令的安全认证方式,并使用 Expect 来实现 SSHD 服务器的自动化登录过程,并在登录的会话中实现命令在 SSHD 服务器端的执行.本文使用的具体实验环境如下:用户使用的 SSH 客户端机器:操作系统均为 RHELS5.3, IP 地址为 192.168.0.3, Expect 版本为 version 5.43.0;远程的 SSHD 服务器:操作系统均为 RHELS5.3,IP 地址为 192.168.0.4,用户名 / 密码为 root/123456. 清单1.登录 SSHD 服务器的自动化脚本 #!/usr/bin/expect # 设置超时时间为 60 秒 set timeout 60 # 设置要登录的主机 IP 地址 set host 192.168.0.4 # 设置以什么名字的用户登录 set name root # 设置用户名的登录密码 set password 123456 #spawn 一个 ssh 登录进程 spawn ssh $host -l $name # 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码 expect { "(yes/no)?" { send "yes\n" expect "assword:" send "$pasword\n" } "assword:" { send "$password\n" } } expect "#" # 下面测试是否登录到 $host send "uname\n" expect "Linux" send_user "Now you can do some operation on this terminal\n" # 这里使用了 interact 命令,使执行完程序后,用户可以在 $host 终端进行交互操作. Interact 如果要运行该脚本,可以参考如下的操作,假设 expect 脚本的文件名为 t1.expect.另外,在运行该脚本之前,需要将 t1.expect 文件设置成可执行的模式 ; 清单2.运行自动化登录脚本的操作步骤 [root@redhat ~]chmod a x t1.expect [root@redhat ~]./t1.expect spawn ssh 192.168.0.4 -l root root@192.168.0.4''s password: Last login: Fri Jun 12 15:36:0

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号