主頁 > 知識庫 > shell腳本無密碼登錄 expect的使用方法詳解

shell腳本無密碼登錄 expect的使用方法詳解

熱門標簽:呼叫中心市場需求 鐵路電話系統(tǒng) AI電銷 網(wǎng)站排名優(yōu)化 Linux服務器 百度競價排名 服務外包 地方門戶網(wǎng)站

shell腳本無密碼登錄 expect的使用方法詳解

今天需要做一個定時任務腳本將最新的數(shù)據(jù)包文件傳到遠程的服務器上,雖然有密鑰但也是要求輸入密碼的那種,所以只能另想辦法實現(xiàn)讓腳本自動輸入密碼了。

從網(wǎng)上查到使用expect可以,簡單研究了一下,效果不錯。 

因為我的操作系統(tǒng)沒有安裝expect,所以直接"yum -y install expect",你可以根據(jù)你的操作系統(tǒng)安裝expect,或者源碼編譯。
安裝好之后就可以使用了,這里有幾種方法:

一、單獨寫一個腳本

如 auto_scp.sh:

#!/usr/bin/expect 
#使用第一個參數(shù) 
set server_ip [lindex $argv 0] 
#后面的也可以用參數(shù)[lindex $argv n] 
set server_port 22 
set server_dir /home/test
set server_user test
set server_pswd test
set scp_file auto_scp.sh 
                                               
# 設置超時時間 
set timeout 60 
spawn scp -P $server_port $scp_file $server_user@$server_ip:$server_dir 
expect { 
    "passphrase"
    { 
      send "$server_pswd\n"; 
    } 
    "password"
    { 
       send "$server_pswd\n"; 
    } 
    "yes/no"
    { 
       send "yes\n"; 
       exp_continue; 
    } 
} 
expect eof

我這里的變量都是隨意設置的,你可以根據(jù)你的情況進行選擇,保存退出之后,對該文件加上可執(zhí)行權限,運行
"./auto_scp.sh 2.2.2.2"就可以了,"2.2.2.2"就是傳入的第一參數(shù)。

"passphrase"和"password"等就是要監(jiān)測的輸入提示的一部分,send "$server_pswd\n"就是要執(zhí)行的命令。

二、在腳本中使用----我比較喜歡這個

我這里使用的是Here document方法。

...... 
...... 
expect !! 
set timeout 60 
spawn scp -P $server_port $scp_file $server_user@$server_ip:$server_dir 
expect { 
    "passphrase"
    { 
      send "$server_pswd\n"; 
    } 
    "password"
    { 
       send "$server_pswd\n"; 
    } 
    "yes/no"
    { 
       send "yes\n"; 
       exp_continue; 
    } 
} 
expect eof 
!! 
......

變量都是我從配置文件中獲取的,這里不再贅述了。

三、在腳本中使用

也是在腳本使用,但是不是用的Here document方法,而是使用expect -c 參數(shù)書,"-c"選項后面的字符串填充的就是命令。但是要注意本身字符串的轉義符。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Linux expect實現(xiàn)自動登錄腳本實例代碼
  • 利用expect命令實現(xiàn)Shell自動化交互的方法詳解
  • Linux下使用expect命令編寫自動化交互腳本
  • 詳解Linux使用shell+expect遠程登錄主機
  • ssh expect自動登錄的腳本代碼
  • linux expect 自動登錄交換機保存配置的方法

標簽:湘潭 崇左 銅川 仙桃 湖南 衡水 蘭州 黃山

巨人網(wǎng)絡通訊聲明:本文標題《shell腳本無密碼登錄 expect的使用方法詳解》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266