您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何用mac電腦自動登錄服務器,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
expect 是一個自動化交互套件,主要應用于執行命令和程序時,系統以交互形式要求輸入指定字符串,實現交互通信。它的自動交互流程如下:
spawn
啟動指定進程 ---> expect
獲取指定關鍵字 ---> send
向指定程序發送指定字符 ---> 執行完成退出
接下來我們將利用 expect 來實現 ssh 自動登錄。首先新建一個文件 /usr/local/bin/iterm2Login.sh
,內容如下:
#!/usr/bin/expect set timeout 30 set host [lindex $argv 0] # 這一行是設置一個變量的意思,變量名隨便起,盡量有意義,后面表示的是傳入的參數,0 表示第一個參數,后面會用到。 set port [lindex $argv 1] set user [lindex $argv 2] set pswd [lindex $argv 3] spawn ssh -p $port $user@$host # spawn 是 expect 環境的內部命令,它主要的功能是給 ssh 運行進程加個殼,用來傳遞交互指令。 expect { "(yes/no)?" {send "yes\n";exp_continue;} -re "(p|P)ass(word|wd):" {send "$pswd\n"} } # expect 也是 expect 環境的一個內部命令,用來判斷上一個指令輸入之后的得到輸出結果是否包含 "" 雙引號里的字符串,-re 表示通過正則來匹配。 # 如果是第一次登錄,會出現 "yes/no" 的字符串,就發送(send)指令 "yes\r",然后繼續(exp_continue)。 interact # interact:執行完成后保持交互狀態,把控制權交給控制臺。
argv 0
, argv 1
, argv 2
, argv 3
三個參數依次為 ip、端口號、用戶名、密碼。
賦予腳本執行權限:
$ sudo chmod +x /usr/local/bin/iterm2Login.sh
將 Profile 中的 Command 部分替換成通過上面的腳本來登錄:
export LC_CTYPE=en_US;/usr/local/bin/iterm2Login.sh 172.16.2.84 22 root "1"
添加正則表達式
Regular expression: Are you sure you want to continue connecting (yes/no)? Action: Send Text Parameters: yes\r Instant: checked
然后就可以自動登錄服務器了
服務器和 mac電腦上都需要安裝 lrzsz
軟件包
#centos && RHEL yum -y install lrzsz # Ubuntu && Debian apt-get install lrzsz # Mac os brew install lrzsz
在全球最大同性交友網站 Github
上,已經有人共享了一個叫 “ZModem integration for iTerm 2” 的項目。我們只需下載其相應腳本,并進行簡單配置就可以很容易的在 iTerm2
上實現對 Zmodem
的支持。
項目地址:https://github.com/kuoruan/iterm2-zmodem[2]
下載并安裝腳本
$ wget -qO /usr/local/bin/iterm2-zmodem.sh https://github.com/kuoruan/iterm2-zmodem/raw/master/iterm2-zmodem.sh $ chmod +x /usr/local/bin/iterm2-zmodem.sh
配置 iTerm2 上的觸發器
打開 iTerm2
,點擊 Preferences
→ Profiles
選擇指定的 Profile
。然后繼續選擇 Advanced
→ Triggers
,并點擊 Edit
添加兩個觸發器。
按如下內容添加兩個觸發器,首先增加 sz
指令的觸發器:
Regular expression: rz waiting to receive.\*\*B0100 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem.sh send Instant: checked
其次增加 rz
指令的觸發器:
Regular expression: \*\*B00000000000000 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem.sh recv Instant: checked
成功增加完成后的效果,類似下圖:
配置這兩個觸發器的作用就是讓 iTerm2
根據終端上顯示的字符通過指定的觸發器調用相應的發送和接收腳本。
上述就是小編為大家分享的如何用mac電腦自動登錄服務器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。