1. 程式人生 > >利用shell的expect實現自動登入伺服器

利用shell的expect實現自動登入伺服器

前言:使用ssh登入內網伺服器,每次都要輸入以下命令,次數多了就感覺很麻煩。

[email protected]:~$ ssh [email protected]
[email protected]'s password:

現在,我們可以使用Expect實現複雜的互動過程。

Expect是一個用來處理互動的命令。

expect常用的四個命令:

  1. spawn 啟動新的程序

  2. expect 從程序接收字串

  3. send 用於向程序傳送字串

  4. interact 允許使用者互動

使用expect

1、 安裝
[email protected]
:~$ sudo apt-get install expect
2、獲取expect執行路徑
[email protected]:~$ which expect
/usr/bin/expect
3、編寫指令碼
[email protected]:~$ cd ~
[email protected]:~$ touch logindev
[email protected]:~$ vim logindev

#!/usr/bin/expect
#啟動新程序
spawn ssh [email protected]
#從程序接收字串
expect "*password:"
#向程序傳送字串
send "yourpassword\r"
#允許使用者互動
interact

儲存,並給賦予執行許可權

[email protected]:~$ chmod +x ./logindev
4、執行指令碼
[email protected]:~$./logindev