shell實現ssh登入並執行命令

2021-10-23 11:10:38 字數 937 閱讀 6726

最近搞灰度發布,機器太多了,四個國家,每個國家兩台機器,啟停應用很費時間,所有打算寫個shell指令碼來提高效率(偷懶~)

使用expect可以不用輸入密碼,避免重複勞動。

那什麼是expect?

查了一下,expect是乙個免費的程式設計工具,用來實現自動的互動式任務,而無需人為干預。說白了,expect就是一套用來實現自動互動功能的軟體。

在實際工作中,我們執行命令、指令碼或程式時,這些命令、指令碼或程式都需要從終端輸入某些繼續執行的指令,而這些輸入都需要人為的手工進行。而利用expect,則可以根據程式的提示,模擬標準輸入提供給程式,從而實現自動化互動執行。這就是expect!!!真的很好用。

先安裝expect

yum install -y expect
touch test.sh

chmod 755 test.sh

使用expect時發現執行指令碼的時候不能使用sh test.sh

應該用 ./test.sh,因為expect不是bash

expect + ssh

#!/usr/bin/expect

set timeout 3

expect

"*password:"

}interact

expect 主要是用 send、expect、spawn、interact 四個命令。

send 命令接收乙個字串引數,並將該引數傳送到程序。

expect 命令和send命令相反,expect通常用來等待乙個程序的反饋,我們根據程序的反饋,再傳送對應的互動命令。

spawn 命令用來啟動新的程序,spawn後的send和expect命令都是和使用spawn開啟的程序進行互動。

到此就完成了,不用一台臺機器登入上去執行命令了,一行命令搞定。

shell實現ssh登入並執行命令

使用expect可以不用輸入密碼,避免重複勞動。那什麼是expect?查了一下,expect是乙個免費的程式設計工具,用來實現自動的互動式任務,而無需人為干預。說白了,expect就是一套用來實現自動互動功能的軟體。在實際工作中,我們執行命令 指令碼或程式時,這些命令 指令碼或程式都需要從終端輸入某...

ssh批量登入並執行命令(python實現)

來自 www.cnblogs.com ma6174 archive 2012 05 25 2508378.html 區域網內有一百多臺電腦,全部都是linux作業系統,所有電腦配置相同,系統完全相同 包括使用者名稱和密碼 ip位址是自動分配的。現在有個任務是在這些電腦上執行某些命令,者說進行某些操作...

ssh批量登入並執行命令(python實現)

人生苦短,我用python!區域網內有一百多臺電腦,全部都是linux作業系統,所有電腦配置相同,系統完全相同 包括使用者名稱和密碼 ip位址是自動分配的。現在有個任務是在這些電腦上執行某些命令,者說進行某些操作,比如安裝某些軟體,拷貝某些檔案,批量關機等。如果一台一台得手工去操作,費時又費力,如果...