ITPub博客

首页 > Linux操作系统 > Linux操作系统 > LINUX EXPECT的安装

LINUX EXPECT的安装

原创 Linux操作系统 作者:perfychi 时间:2012-10-04 08:22:54 0 删除 编辑
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 LINUX EXPECT的安装

2008-07-07 21:48:34

标签:linux expect

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://miracle.blog.51cto.com/255044/86275

      今天同事要求在两台新装的LINUX系统上安装expect。
     
说实话还真不知道这个东西是干什么的 -:(
        

后来查了一下,赶紧补习补习
Expect [is a] software suite for automating interactive tools
。使用它系统管理员的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。

     
    
检查系统,发现tcl已经安装了。

[root@rhel ~]# rpm -qa|grep tcl
tcl-8.4.13-3.fc6
tclx-8.4.0-5.fc6

    后来才发现,因为expect需要重新编译后安装,那么就需要tcl的开发包。

rpm -ivh --force tcl-devel-8.4.13-3.fc6.i386.rpm

    然后将expect-5.43包解开,开始读INSTALL文档,系统管理员告诉我,不用读,直接运行 ./configure --help开参数。确实好使,又土了一次 :-( 。
  

1.首先确定tcl开发包安装的位置
rpm -qpl tcl-devel-8.4.13-3.fc6.i386.rpm|more

2.
然后根据参数,运行./configure
./configure --with-tcl=/usr/lib --with-tclinclude=/usr/include/tcl-private/generic

3.
执行
make

4.
执行
make install

    
   
完成第四步后,expect顺利安装成功。-:)

前不久因为进行异地copy数据,就想到了scp,但是这个东西需要手动去输入密码,不能放到后台去执行,于是就考虑有没有办法让他自动输入密码呢,最终发现了expect这个东西,很强大的东西,所以我就在本地测试了下,最终实现了不用手动输入密码也可以进行COPY数据,拿来与大家分享.

    要使用expect需要预先安装tcl这个东西,然后再安装expect包.我这里使用的是tcl8.4.11-src.tar.gz和expect-5.43.0.tar.gz的安装包.

    1.安装tcl和expect

    #tar zxvf tcl8.4.11-src.tar.gz #cd tcl8.4.11/unix #./configure && make && make install #cp tclUnixPort.h  ../generic/

    #tar zxvf expect-5.43.0.tar.gz #cd expect-5.43/ #./configure --with-tcl=/usr/local/lib/ --with-tclinclude=\ /home/nagios/tcl8.4.11/generic/  --with-x=no

    #make && make install

    OK,tcl以及expect已经安装完成了.下面给出scp的一个expect很简单的一个脚本

    #!/usr/local/bin/expect

    spawn scp /home/nagios/tuning-primer.sh nagios@192.168.100.104:/home/nagios/

    expect "Password:"

    exec sleep 2

    send "nagios&*(\n"

    interact

    就这么一个简单的脚本,就可以实现了自动输入密码的功能,大家对expect的了解还是需要在网上自己找些资料的,他也支持函数、条件语句、循环语句的,功能蛮强大的.

 

 

 

 

 

一、Linux下expect的安装和使用

    要使用expect需要预先安装tcl这个东西,然后再安装expect包.我这里使用的是tcl8.4.11-src.tar.gz和expect-5.43.0.tar.gz的安装包.

    安装tcl和expect

 

    #tar zxvf tcl8.4.11-src.tar.gz #cd tcl8.4.11/unix #./configure && make && make install #cp tclUnixPort.h  ../generic/

 

 

    #tar zxvf expect-5.43.0.tar.gz #cd expect-5.43/ #./configure --with-tcl=/usr/local/lib/ --with-tclinclude=\ /home/nagios/tcl8.4.11/generic/  --with-x=no

 

    #make && make install

 

    OK,tcl以及expect已经安装完成了.下面给出scp的一个expect很简单的一个脚本

 

    #!/usr/local/bin/expect

 

    spawn scp /home/nagios/tuning-primer.sh nagios@192.168.100.104:/home/nagios/

 

    expect "Password:"

 

    exec sleep 2

 

    send "nagios&*(\n"

 

    interact

 

二、Windows下except的安装和使用

 

    这是一个自动登录AIX服务器的例子。

 

1、先去如下地方下载expect:

windows">http://expect.nist.gov/#windows

ftp://bmrc.berkeley.edu/pub/winnt/tcltk/expect

 

2、安装默认路径是C:Program FilesExpect-5.21bin

expect.exe就在这里

 

3、写个简单的脚本sample.txt

spawn telnet aixserver

expect "login:"

send "mynamer"

expect "Password:"

send "mypassr"

send "lsr"

send "prtconfr"

expect eof

 

PS:网页的问题,脚本中的“\”等符号会丢失。

 

4、运行命令expect sample.txt看看效果

 

5、看看expect的一些帮助信息:

「开始」菜单程序Expect-5.21Tcl 8.0 Shell with Expect

敲?和help看看

 

 

 

本篇文章来源于 Linux公社网站()  原文链接:http:///Linux/2011-06/36949.htm

 

 

 

 

 

 

 

 

 

 

 

expect 安装

博客分类:

TclLinuxRedHatBashGCC

最近搞一个自动配置,所以要写一些bash,用到了expect , 发现没有那个命令,所以自己安装了一下,过程如下

1 . 首先检查tcl 安装了没有

     rpm -qa|grep tcl

  结果显示如下: tcl-8.4.13-4.el5
                          tclx-8.4.0-5.fc6

   结果表示已经安装了 tcl  但是没有安装tcl0-devel  所以就要安装

2. 安装tcl-devel

     首先查一下linux 版本和操作系统的位数

       /proc/version

    结果如下  Linux version 2.6.18-194.el5 (mockbuild@x86-005.build.bos.redhat.com)  (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48))

   x86 redhat  4.1

  下载文件如下有 tcl-devel-8.4.13-4.el5.x86_64.rpm

 执行安装:rpm -ivh tcl-devel-8.4.13-4.el5.x86_64.rpm   安装成功

 

3. 安装expect :

    下载expect 包,在附件中已有

     先要查看tcl开发包安装的位置   我的就安装在/usr/local/bin 下,有些系统不一样,是装在/usr/bin下

    解开expect-5.43.0.tar.gz 包

  ./configure --with-tcl=/usr/lib64 --with-tclinclude=/usr/include/tcl-private/generic

   make

  make install

  完成


4 .
编写脚本运行进运行出错:-bash: ./scm.sh: /bin/sh/expect: bad interpreter:

   解决这个问题的办法是:修改文件头  :#!/usr/local/bin/expect

这样OK

 

 

  由于最近要学习expect,所以便在自己的机器上面装expect,网上找了好多文章看,但是还是出现了很多问题,于是把问题写出来给后来的人一点小小的帮助,聊表心意。

        我是在turbolinux上面安装的,而且是在vmware下面安装的。

        检查系统,发现tcl已经安装了。

[root@rhel ~]# rpm -qa|grep tcl
tcl-8.4.13-3.fc6
tclx-8.4.0-5.fc6

后来才发现,因为expect需要重新编译后安装,那么就需要tcl的开发包。

rpm -ivh --force tcl-devel-8.4.13-3.fc6.i386.rpm

    然后将expect-5.43包解开,开始读INSTALL文档,系统管理员告诉我,不用读,直接运行 ./configure --help开参数。确实好使,又土了一次 :-( 。

1.首先确定tcl开发包安装的位置
rpm -qpl tcl-devel-8.4.13-3.fc6.i386.rpm|more

2.
然后根据参数,运行./configure
./configure --with-tcl=/usr/lib --with-tclinclude=/usr/include/tcl-private/generic

3.
执行
make

4.
执行
make install

    
   
完成第四步后,expect顺利安装成功。-:)

 

 

上面的是看的别人的文章,由于我的是trubolinux10.0的,所以出现了很多问题,在第2步的时候出现了--with-tcl=/usr/lib改为--with-tcl=/usr/lib64,但是编译的时候还是出现了问题,错误是找不到tkConfig.sh,加了--with-tk=/usr/lib64,出现了问题是没找到tk.h。发现系统没有安装tk,不知道为什么别人的不用安装tk,于是我安装了,制定了安装的目录,算是编译通过了,现在开始安装。但是还是出现了一个问题[libexpect5.44.1.so] 错误 1。不知道是什么问题,怎么会出现这样的问题呢?还是安装不成功应该,所以在你们出现这样的问题后,在另想办法吧,少走弯路。

 

 

 

郁闷了半天之后,问题还是要解决的。也是乎,把很多东西删除掉重新来过。

终于发现问题的所在了,我下的expect的版本开始是expect-5.44.1.tar.gz ,之后我换了一个版本的expect-5.43.0.tar.gz ,而其他的还是一样的步骤。可见版本升级了就会出现很多的问题。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-745585/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: python 安装
请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    484
  • 访问量
    2976218