服務器sh腳本自動登錄(mac)


  一不小心自己也有三台虛擬機了,每次都ssh -username@ip 然后在輸入密碼着實蛋疼,第一反應時腳本登錄,但是作為腳本是逐行執行命令,是無法做到等待一個密碼提示出現在輸入密碼的。查到mac下可以通過expect(具體是spawn,expect,send三條功能),win類似也有expect工具。感覺應該是個運維技巧。

  ok,安裝expect,根據INSTALL,README,要裝expect現狀tcl(另一個包),http://www.tcl.tk/software/tcltk/download.html,tcl的話解壓出來我直接進入的unix目錄下,因為macosx下README說mac下當成unix裝也沒啥事,而且我在macosx下make不過是什么鬼。。。安裝沒什么注意的,./configure  make makeinstall is enough。裝完tcl記得看下安裝的路徑,我的是在/usr/local/lib/。

  之后再下載expect包,https://sourceforge.net/projects/expect/files/Expect/5.45/。這里解壓之后放到tcl一起,我的話即/usr/local/lib/,然后make時候make expect說是可以只裝expect相關組件,難道還有別的???,不管,我直接make之后install了。

  然后我們就具備了expect的主要功能了。

  代碼如下:

#!/usr/bin/expect -f     /usr/bin/expect這個路徑安裝完expect之后 which expect可以查看
set timeout -1
set password bugaosuni

spawn ssh myname@serverip

expect "*assword:*"    //  等待密碼提示顯示
send "$password\r"     //  登錄

interact             //done

然后很受傷的是這個腳本已經不能當普通sh來執行了。得用expect 命令執行。具體就是  expect    myLogon.sh 。期間若是不可執行 chmod +x myLogon.sh。

OK 用戶密碼都在logon.sh里面了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM