expect實現自動登入指令碼

2021-08-17 22:02:33 字數 772 閱讀 1189

寫在前面:目前在公司是一人一台虛擬機器,大多數工作都要在虛擬機器上完成,為此每天要執行很多次【ssh ***@******】指令登入虛擬機器;有很多方式解決這個問題,如使用xshell、securecrt等工具記錄常用的連線,我就寫了乙個簡單的指令碼實現一鍵登入~

login.sh指令碼內容如下:

#!/usr/bin/expect

spawn ssh ***@******

expect "*password:"

send "密碼\r"

interact

再將【./login.sh】配置別名alias,或移動到可執行目錄中,即可實現【login】一鍵登入;

expect是乙個處理互動的指令,通過expect我們可以把互動過程寫到shell指令碼裡以實現一些自動化操作~

expect有四個核心的指令:

對於login.sh的執行過程為:

【spawn】啟動乙個新程序執行ssh登入指令,【expect】監聽到標準輸入的提示資訊『***@******』s password』符合匹配規則,觸發【send】傳送密碼代替手動輸入,完成登入,【interact】使用者參與互動,此時已登入上了虛擬機器;

使用expect還可以完成如:批量更新git**庫、自動登入ftp等功能等~

部落格搬家:

使用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自動登入

expect是乙個會話程式,根據內容反饋來做出應答,python也有乙個相關庫pexpect。用它進行自動登入,不是用authorized key,而是把使用者名稱密碼寫死在指令碼裡,來實現自動登入,畢竟總去上傳key也不現實。我在這兒修改了下,優先接受命令行引數,如果沒有傳則使用預設值。把指令碼放...

使用 expect 自動登入

今天在玩linux,在root與普通使用者之間切換,老是要輸入密碼,然後突然有個想法,自己寫個shell指令碼執行自動切換此不是更方便,瞎搞了一下不行,然後google上搜一下,原來純shell做不了這個事,要用expect,以下安裝步驟 2 安裝tcl 進入tcl目錄 cd tcl 你會看到有乙個...