自動登錄linux服務器腳本

自動登錄linux服務器腳本

在服務器上進行開發時,往往需要進行密碼登錄,甚至有的需要先登錄堡壘機,再登錄開發機,輸入過程較爲繁瑣,因此考慮將命令寫成腳本的形式自動化登錄。

方法
ssh登錄是一個交互的過程,且沒有特定的參數指定密碼的輸入方式,因而不能用管道、重定向的方式實現。這種情況可以使用expect包進行自動登錄功能的實現。 
expect是一個用來處理人與程序交互的包,可以將交互過程用程序實現,適用於做ssh自動登錄。可以使用whereis命令查看是否安裝了expect,如果沒有的話,可以自行使用包管理工具進行安裝。 
自動登錄腳本的編寫如下:

#!/bin/expect  
set timeout 20  
spawn ssh username@host_name:port
expect "password:"
send "password\n"  
interact  

第一行註釋指定了使用expect執行,第二行設置超時時間爲20秒,第三行spawn爲expect執行命令的關鍵字,第四行expect表示交互獲取的內容是否包含”password:”字符串,第五行表示將輸入內容發送過去(加了個\n表示回車),最後一行,interact代表執行完留在遠程控制檯,不加這句執行完後返回本地控制檯。 
將這個腳本命名存在本地,在保存的路徑下,執行expect cmd_file_name即可實現自動登錄服務器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章