Mac利用expect編寫自動執行指令碼

2021-09-27 04:14:01 字數 819 閱讀 7626

在公司中登入docker機需要手動輸入密碼非常麻煩,因此可以用expect編寫指令碼利用指令碼自動登入。

1、安裝brew(若已安裝可省略)

brew 是 mac 下的乙個包管理工具,類似於 centos 下的 yum,可以很方便地進行安裝/解除安裝/更新各種軟體包

ruby -e "$(

curl -fssl

"

2、安裝expect

brew install

expect

3、編寫指令碼

#expect的安裝路徑

#!/usr/bin/expect -f

#設定超時時間

settimeout 3

#私人密碼

set password yourpassword

#傳遞互動指令

spawn ssh root@ip

#根據輸出傳遞資料

expect

"password"

#保持在遠端

interact

傳遞互動資料的還可以通過一下方法

expect

"password:"

send "$password\r"

同樣還可以通過$ar** 引數陣列傳遞

expect test.exp 123456

set password [lindex $ar** 0]

expect

"password"

編寫expect指令碼

expect實現自動互動。如,scp,ssh,ftp root等需要輸入密碼的互動需求 例如ssh命令遠端登入其他主機,會要求輸入密碼 ps 有時候有的機器登入也不需要密碼 bin sh echo start expect c expect hello send world n expect eof...

mac使用expect自動登入跳版機

痛點 mac登入跳版機,每次都要輸入使用者名稱和密碼選擇伺服器後,比較繁瑣。解決 發現expect很好用,share一下,下面是工作中真實使用的指令碼。前提 安裝expect 1 expect互動的指令碼 2 usr bin expect34 連線跳板機 5 spawn ssh p2222 jump...

利用expect實現SSH登入密碼的自動填充

ssh可以遠端登入另一台主機 基本使用口令如下 1.ssh user host address 如 ssh ysaicll 192.168.0.1 以ysaicll身份登入主機192.168.0.1 2.ssh host address 如 ssh 192.168.0.1 直接登入主機192.168...