利用shell的expect實現自動登錄服務器
阿新 • • 發佈:2019-01-04
touch 服務 install 過程 字符串 允許 chmod 獲取 word
前言:使用ssh登錄內網服務器,每次都要輸入以下命令,次數多了就感覺很麻煩。
zrj@zrj:~$ ssh [email protected]
[email protected]‘s password:
現在,我們可以使用Expect實現復雜的交互過程。
Expect是一個用來處理交互的命令。
expect常用的四個命令:
-
spawn 啟動新的進程
-
expect 從進程接收字符串
-
send 用於向進程發送字符串
- 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實現自動登錄服務器