簡體   English   中英

如何修復scp下載的期望腳本?

[英]How can I fix my expect script for scp download?

我正在嘗試使用expect繞過我正在使用的遠程服務器的密碼驗證過程,因此我可以批量下載一系列文件,每個文件都存儲在不同的文件夾中。

使用expect的原因是遠程文件存儲在單獨的文件夾中,我正在訪問的服務器不允許我使用ssh密鑰訪問。

目前我正在努力使用expect下載單個文件,更不用說同時使用多個文件了。 下面是我的簡單腳本:

#!/bin/bash 

#connect to the server using scp
expect <<EOF
spawn scp username@server:file.txt ./
expect “*word:*“
send “password\r”
EOF

我希望將file.txt下載到我運行腳本的目錄中。但是,當它運行時,我會從我的服務器獲取文本輸出,要求輸入密碼,然后在退出之前暫停4-5秒命令提示符。

非常感謝任何幫助!

  1. 我在你的代碼中看到了“花哨的”引號。 期望不會將這些理解為引用。 確保您的編輯器不使用“智能引號”。
  2. 發送密碼后,您必須等待下載完成后才能退出腳本:

     #!/bin/bash #connect to the server using scp expect <<EOF set timeout -1 spawn scp username@server:file.txt ./ expect "*word:*" send "password\\r" expect eof EOF 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM