欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年10月19日 14:10:55   作者:gaoyaohuachina  
這篇文章主要介紹了shell腳本無密碼登錄 expect的使用方法詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

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

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

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

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

一、單獨(dú)寫一個(gè)腳本

如 auto_scp.sh:

#!/usr/bin/expect 
#使用第一個(gè)參數(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 
                                               
# 設(shè)置超時(shí)時(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

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

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

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

我這里使用的是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"選項(xiàng)后面的字符串填充的就是命令。但是要注意本身字符串的轉(zhuǎn)義符。

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

相關(guān)文章

  • shell實(shí)現(xiàn)猜數(shù)字小游戲

    shell實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了shell實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Shell腳本實(shí)現(xiàn)檢測進(jìn)程是否正在運(yùn)行

    Shell腳本實(shí)現(xiàn)檢測進(jìn)程是否正在運(yùn)行

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)檢測進(jìn)程是否正在運(yùn)行,本文給出的代碼簡潔清晰,并給出了使用方法,需要的朋友可以參考下
    2015-01-01
  • 完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題

    完美解決mac環(huán)境使用sed修改文件出錯(cuò)的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qmac環(huán)境使用sed修改文件出錯(cuò)的問題。
    2017-04-04
  • 列出所有Bash Shell內(nèi)置命令的方法示例

    列出所有Bash Shell內(nèi)置命令的方法示例

    大家都知道不同的Shell內(nèi)置命令有所不同,所以下面這篇文章主要給大家介紹了關(guān)于如何列出所有Bash Shell內(nèi)置命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 使用curl遞歸下載軟件腳本分享

    使用curl遞歸下載軟件腳本分享

    本腳本完成了對apache的鏡像網(wǎng)站的遞歸掃描。通過文件IO的緩存方式記錄可下載文件,再針對需要文件的后綴名批量下載軟件包備用,大家可以修改成自己腳本
    2014-03-03
  • Linux常用ls, alias基礎(chǔ)命令詳解

    Linux常用ls, alias基礎(chǔ)命令詳解

    這篇文章主要介紹了Linux常用ls, alias基礎(chǔ)命令詳解,ls命令 的作用是列舉目錄文件信息,alias查看定義的別名,具體內(nèi)容詳情大家參考下本文
    2018-05-05
  • Ubuntu不進(jìn)入休眠模式的方法

    Ubuntu不進(jìn)入休眠模式的方法

    下面小編就為大家?guī)硪黄猆buntu不進(jìn)入休眠模式的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Shell退出狀態(tài)的使用

    Shell退出狀態(tài)的使用

    這篇文章主要介紹了Shell退出狀態(tài)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 淺析Linux系統(tǒng)下安裝wetty和使用說明

    淺析Linux系統(tǒng)下安裝wetty和使用說明

    本篇文章主要給大家介紹linux系統(tǒng)下安裝wetty和使用說明,以及l(fā)inux tty命令學(xué)習(xí)總結(jié),感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2015-10-10
  • Shell腳本實(shí)現(xiàn)SSL證書過期巡檢

    Shell腳本實(shí)現(xiàn)SSL證書過期巡檢

    我們知道?SSL?證書是會(huì)過期的,一旦過期之后需要重新申請,如果沒有及時(shí)更換證書的話,就有可能導(dǎo)致網(wǎng)站出問題,所以本文分享一個(gè)自動(dòng)檢測?SSL?是否過期的?shell?腳本吧
    2023-08-08

最新評論