[root@localhost ~]$ tar -zxvf tcl8.6.8-src.tar.gz
[root@localhost ~]$ cd tcl8.6.8/unix
[root@localhost ~]$ ./configure --prefix=/usr/tcl --enable-shared
[root@localhost ~]$ make
[root@localhost ~]$ make install
[root@localhost ~]$ cp tclunixport.h ../generic
安裝完畢以後,把unix目錄下面的tclunixport.h copy到子目錄generic中。
暫時不要刪除tcl源**,因為expect的安裝過程還需要用。
[root@localhost ~]$ tar -zxvf expect5.45.tar.gz
[root@localhost ~]$ cd expect5.45
[root@localhost ~]$ ./configure --prefix=/usr/expect --with-tcl=/usr/tcl
/lib --with-tclinclude=../tcl8.6.8/generic
[root@localhost ~]$ make
[root@localhost ~]$ make install
[root@localhost ~]$ ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
[username@localhost ~]$ vi expectshell //新增以下內容
#!/usr/expect/bin/expect //expect指令碼命令的位置
set remote_ip "192.168.1.103"
set pass_wd "some password"
spawn scp tcl8.6.8-src.tar.gz [email protected]:/home/username/tcl.tar.gz //spawn 後面跟乙個命令,開啟乙個會話,這裡是乙個copy檔案的命令
expect "*assword:"
send "$\r"
//輸入密碼
spawn ssh [email protected] //開啟另乙個,ssh登入
expect "*assword: "
send "$\r"
expect "last login:*"
send "ifconfig\r"
//檢視ip資訊
expect "*flags*"
send "su root\r"
//切換root使用者
expect "*assword:"
send "$\r"
send "cd /usr\r"
send "mkdir test\r"
send exit\r"
expect eof //結束
儲存後賦予許可權,執行檢查結果
[username@localhost ~]$ chmod 755 expectshell
[username@localhost ~]$ ./expectshell
#!/usr/bin/expect -f
if
set timeout -1
set remote_user[lindex $argv 0 ] //接收第乙個引數,並登入使用者名稱
set remote_host [lindex $argv 1 ] //接收第乙個引數,並設定ip
set remote_pwd [lindex $argv 2 ]//接收第二個引數,並設定密碼
set timeout -1
//設定超時時間
spawn ssh $@$ //傳送ssh請滶
expect //第一次ssh連線會提示yes/no,繼續
"*password:" \r" } //出現密碼提示,傳送密碼
} interact //互動模式,使用者會停留在遠端伺服器上面.
expect實現自動登入指令碼
寫在前面 目前在公司是一人一台虛擬機器,大多數工作都要在虛擬機器上完成,為此每天要執行很多次 ssh 指令登入虛擬機器 有很多方式解決這個問題,如使用xshell securecrt等工具記錄常用的連線,我就寫了乙個簡單的指令碼實現一鍵登入 login.sh指令碼內容如下 usr bin expec...
使用expect實現自動互動,自動登入指令碼
使用expect實現自動互動,自動登入指令碼 指令碼 如下 usr bin expect set timeout 30 spawn ssh l username 192.168.1.1 expect password send ispass r interact 1.usr bin expect 這...
expect使用ssh登入指令碼
基礎篇 u s ssh spawn ssh l root 10.10.10.24 等待響應,第一次登入往往會提示是否永久儲存 rsa 到本機的 know hosts 列表中 等到回答後,在提示輸出密碼 之後就直接提示輸入密碼 expect yes no password host interact ...