expect指令碼安裝和乙個簡單的指令碼

2021-09-21 16:11:45 字數 1010 閱讀 7911

前不久因為進行異地copy資料,就想到了scp,但是這個東西需要手動去輸入密碼,不能放到後台去執行,於是就考慮有沒有辦法讓他自動輸入密碼呢,最終發現了expect這個東西,很強大的東西,所以我就在本地測試了下,最終實現了不用手動輸入密碼也可以進行copy資料,拿來與大家分享.

要使用expect需要預先安裝tcl這個東西,然後再安裝expect包.我這裡使用的是tcl8.4.11-src.tar.gz和expect-5.43.0.tar.gz的安裝包.

1.安裝tcl和expect

#tar zxvf tcl8.4.11-src.tar.gz

#cd tcl8.4.11/unix

#./configure && make && make install

#cp tclunixport.h  ../generic/

#tar zxvf expect-5.43.0.tar.gz

#cd expect-5.43/

#./configure --with-tcl=/usr/local/lib/ --with-tclinclude=\

/home/nagios/tcl8.4.11/generic/  --with-x=no

#make && make install

ok,tcl以及expect已經安裝完成了.下面給出scp的乙個expect很簡單的乙個指令碼

#!/usr/local/bin/expect

spawn scp /home/nagios/tuning-primer.sh nagios@

192.168.100.104:

/home/nagios/

expect "password:"

exec sleep 2

send

"nagios&*(\n"

interact

就這麼乙個簡單的指令碼,就可以實現了自動輸入密碼的功能,大家對expect的了解還是需要在網上自己找些資料的,他也支援函式、條件語句、迴圈語句的,功能蠻強大的.

Expect的乙個簡單使用

最近在寫乙個自動部署環境的指令碼.發現shell在遠端scp或ssh時.都需要提示輸入密碼.嘗試建立server端的信任關係發現行不通 可能是基於安全考慮?不過,使用了另外一種方法解決了這個問題.它就是 expect 我覺得寫有互動的shell還是挺有用的.現學現賣跟大家share一下.什麼是exp...

乙個簡單的Shell指令碼

最近新學linux的shell程式設計。試著寫了乙個遍歷資源目錄的子目錄,每個資源子目錄中拷貝10個檔案到目標目標的小指令碼。沒有什麼技術含量,只是防止自己忘記。bin sh srcroot vsu data2 datasource npm fiveminute srcpath null myroo...

乙個簡單的指令碼守護程序

專案過程中,經常會有很多的指令碼,shell指令碼 php指令碼 python指令碼等,更有一些指令碼是需要常駐記憶體執行的,簡而言之就是需要while true 的模式執行。但是有的時候,乙個常駐記憶體的程序會因為某些耗時操作而夯住,不再往下繼續執行,成為了乙個殭屍程序 或者因為某個操作偶然出錯,...