手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux下Expect命令安装

[日期:2012-10-22] 来源:Linux社区  作者:xubcing [字体: ]

一、Expect介绍及应用场景

Expect是一个用来实现自动交互功能的软件套 件(Expect [is a] software suite for automating interactive tools)。使用它系统管理 员的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。

最近在研究Hadoop集群,在多台服务器相同的用户user下面,要登录到所有的服务器上执行一些相同的命令(修改一些配置文件,执行一些命令),如果ssh到不同的机子上去,一个个执行的话,人肉来做会疯掉的,所以通过expect写成shell脚本来批量处理,才是程序机器来干的事情。

二、Expect安装

下载的 expect-5.43.0.tar.gz  需要编译、安装,需要依赖tcl-devel,所以要先确认安装tcl相关包

1、首先检查tcl 安装情况

rpm -qa | grep tcl

结果显示如下: tcl-8.4.13-4.el5

tclx-8.4.0-5.fc6

结果表示已经安装了 tcl  但是没有安装tcl-devel  所以就要安装,之前没有查看操作系统位数,下了64位的tcl-devel包,安装错误

cat  /proc/version

Linux version 2.6.18-194.el5 (mockbuild@x86-007.build.bos.RedHat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-  48)) #1 SMP Tue Mar 16 21:52:43 EDT 2010

下载 tcl-devel-8.4.13-4.el5.i386.rpm 包,

http://rpm.pbone.net/index.php3/stat/4/idpl/15700692/dir/CentOS_5/com/tcl-devel-8.4.13-4.el5.i386.rpm.html

安装 rpm -ivh  tcl-devel-8.4.13-4.el5.i386.rpm

或者采用 yum install tcl-devel.i386

2、安装expect包

先要查看tcl开发包安装的位置

不同的系统的TCL安装目录不一样,解开expect-5.43.0.tar.gz 包,安装时需指定TCL的相关目录

--with-tclinclude 参数就是  tcl开发包的安装位置

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

make

make install

完成

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

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

这样OK。

相关阅读:Linux下Expect命令应用 http://www.linuxidc.com/Linux/2012-10/72762.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款