【轉】CentOS下expect 安裝


 
Expect是在Tcl基礎上創建起來的,它還提供了一些Tcl所沒有的命令,它可以用來做一些linux下無法做到交互的一些命令操作,在遠程管理方面發揮很大的作用。
spawn命令激活一個Unix程序來進行交互式的運行。 
send命令向進程發送字符串。
expect 命令等待進程的某些字符串。 
expect支持正規表達式並能同時等待多個字符串,並對每一個字符串執行不同的操作.
 
 
A. Tcl 安裝 
主頁: http://www.tcl.tk
下載地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml
 
1.下載源碼包
wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
 
2.解壓縮源碼包
tar xfvz tcl8.4.11-src.tar.gz
 
3.安裝配置
cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install
 
安裝完畢以后,進入tcl源代碼的根目錄,把子目錄unix下面的tclUnixPort.h copy到子目錄generic中。
暫時不要刪除tcl源代碼,因為expect的安裝過程還需要用。
 
B. expect 安裝 (需Tcl的庫)
主頁: http://expect.nist.gov/
 
1.下載源碼包
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz
 
2.解壓縮源碼包
tar xzvf expect5.45.tar.gz
 
3.安裝配置
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic
 
make
make install
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
 
最后
cp /usr/expect/bin/expect /usr/bin/
即可執行expect命令
 
===============實例=============================
登錄到192.168.1.35機器上,執行ifconfig eth0 和 df-h 退出,實例:

#!/bin/bash
ip1="192.168.1.35"
command="ssh -l root -p 22 $ip1"

expect -c "
spawn $command;
expect {
\"$ip1's password:\" {send \"admin^\r\"; exp_continue}
\"root@\" {send \"ifconfig eth0 \r df -h\r exit\r\"; exp_continue}
}
"

ip=(192.168.1.35 
192.168.1.38)
for i in ${ip[@]}
do
echo $i
done

==================================================================================
參考如下:
#!/usr/bin/expect
set timeout 10
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set src_file [lindex $argv 3]
set dest_file [lindex $argv 4]
spawn scp $src_file $username@$host:$dest_file
expect {  
"(yes/no)?"  
{
send "yes\n"
expect "*assword:" { send "$password\n"}
}  
"*assword:"
{
send "$password\n"
} 
} 
expect "100%"
expect eof 

上述重命名scp_scp.sh 

若批量執行,則外套一個腳本調用

./scp_scp.sh 192.168.1.110 root password /etc/hosts /etc/hosts

【轉】http://www.jb51.net/article/34005.htm

==================================================================================
【轉】http://blog.sina.com.cn/s/blog_65f27fc20101fjm9.html
做個備份


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM