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

利用shell的expect實現自動登錄服務器

touch 服務 install 過程 字符串 允許 chmod 獲取 word

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

zrj@zrj:~$ ssh [email protected]
[email protected]‘s password:

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

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

expect常用的四個命令:

  1. spawn 啟動新的進程

  2. expect 從進程接收字符串

  3. send 用於向進程發送字符串

  4. interact 允許用戶交互

使用expect

1、 安裝
zrj@zrj:~$ sudo apt-get install expect
2、獲取expect執行路徑
zrj@zrj:~$ which expect
/usr/bin/expect
3、編寫腳本
zrj@zrj:~$ cd ~
zrj@zrj:~$ touch logindev
zrj@zrj:~$ vim logindev

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

保存,並給賦予執行權限

zrj@zrj:~$ chmod +x ./logindev
4、運行腳本
zrj@zrj:~$./logindev

利用shell的expect實現自動登錄服務器