RH 7.5 Linux 使用curl 和 sftp 提取以特定檔案副檔名結尾的多個文件

RH 7.5 Linux 使用curl 和 sftp 提取以特定檔案副檔名結尾的多個文件

我在Red Hat Linux 7.5環境。我正在嘗試編寫一個curl 腳本來從以特定檔案副檔名結尾的資料夾中提取/接收任何檔案。

以前,我編寫了一個腳本,使用帶有 ftps 的curl 來推送/發送(不是 SFTP) 選項、登入名稱和密碼、完整追蹤日誌記錄以及 2>&1 任何其他錯誤。我能夠編寫腳本,因為檔案名稱是本地的,並且能夠透過某些腳本邏輯進行 grep 編輯。

基本上我要發送的捲曲聲明是這樣的(不,這些不是字串中的真實引用,我出於隱私原因更改了這些值。):

curl --ftp-ssl -k --trace /bedrock/fred/logs/sendpdf.log -T /bedrock/fred/brontosaurussteak.pdf -u fflintstn:H4s$anC#0P ftp://bedrockpoobalodge.com:27Memebers/fredflintstone/pdffiles/ >> /bedrock/fred/logs/transfer.log

上面的所有引用都在腳本中,對路徑和其他內容的引用被放入循環中的變數中,每小時處理數百個檔案。它在工作腳本中看起來像這樣:

curl $curlFTPC $curlTRCMD\_$trFlCntr\_$cntnt.txt $curlSF/$file $curlAHaD &>> $prcssLgFl

當您不知道要拉取/接收的檔案名稱時,情況就完全不同了。

我看過很多基於“curl eval”循環的範例,如下所示:

for i in $(curl https://someserver.com/alpha/beta/gamma/  | grep pdf | awk -F "=" '{print $2}' | jq '.[].full_path' | awk -F '"' '{printf("https://someserver.com/alpha/beta/gamma/%s\n",$2)}')

但我似乎無法讓這樣的東西在相同的協定和身份驗證下拉/接收。我確信我錯過了一些明顯的東西。

我願意接受解決方案甚至替代方案,只要它可以在 bash 中編寫腳本並且不使用 Expect,可以使用sftp我可以對標準輸入、標準輸出和標準錯誤進行完整的追蹤和記錄。

我不願意使用「期望」。

答案1

wget為了救援。wget專為文件傳輸和日誌記錄而設計。

相關內容