LINUX EXPECT的安裝
2008-07-07 21:48:34
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本宣告。否則將追究法律責任。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">
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公社網站() 原文連結:
expect 安裝
部落格分類:
最近搞一個自動配置,所以要寫一些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 () (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部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-745585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下expect安裝Linux
- expect安裝
- expect安裝及使用
- CentOS下expect 安裝CentOS
- linux expectLinux
- linux下expect環境安裝以及簡單指令碼測試Linux指令碼
- linux expect 的基本使用Linux
- 客戶端自動配置安裝(expect工具)客戶端
- linux expect 簡單講解Linux
- 【Linux】命令expect使用詳解Linux
- Maven的安裝/2.2 Linux下的安裝MavenLinux
- linux expect自動登入ssh,ftpLinuxFTP
- Linux的安裝教程Linux
- Oracle——Linux的安裝OracleLinux
- Linux下怎麼安裝.deb格式的安裝包?Linux系統下.deb格式安裝包的安裝教程Linux
- linux 安裝yum 安裝phpLinuxPHP
- Linux安裝解除安裝MySQLLinuxMySql
- Windows下的Memcache安裝 linux下的Memcache安裝WindowsLinux
- Linux下jdk的安裝解除安裝切換LinuxJDK
- linux中安裝JDK linux中安裝Tomcat linux中安裝Mysql 及故障解析 linux系統安裝redisLinuxJDKTomcatMySqlRedis
- linux expect詳解(ssh自動登入)Linux
- linux 解除安裝jdk和安裝LinuxJDK
- Linux下安裝、解除安裝mysqlLinuxMySql
- Linux 解除安裝openjdk 安裝oraclejdkLinuxJDKOracle
- linux下安裝snap安裝工具Linux
- linux 上 redis的安裝LinuxRedis
- docker的安裝(linux、centos)DockerLinuxCentOS
- LINUX系統的安裝Linux
- Linux下的Nginx安裝LinuxNginx
- Linux下Apollo的安裝Linux
- linux下rar的安裝Linux
- linux 下oracle的安裝LinuxOracle
- linux上安裝Docker(非常簡單的安裝方法)LinuxDocker
- linux 安裝ps需要先安裝的rpm包Linux
- Linux下軟體的基本安裝和解除安裝Linux
- Linux下軟體的安裝與解除安裝(轉)Linux
- 【expect】用expect實現scp/ssh-copy-id的非互動
- Linux系統安裝——Centos 7.6安裝LinuxCentOS