RH 7.5 Linux verwendet curl mit sftp, um mehrere Dateien abzurufen, die mit einer bestimmten Dateierweiterung enden

RH 7.5 Linux verwendet curl mit sftp, um mehrere Dateien abzurufen, die mit einer bestimmten Dateierweiterung enden

Ich befinde mich in einer Red Hat Linux 7.5-Umgebung. Ich versuche, ein Curl-Skript zu schreiben, um beliebige Dateien aus einem Ordner abzurufen/zu empfangen, die mit einer bestimmten Dateierweiterung enden.

Zuvor habe ich ein Skript zum Pushen/Senden mit curl und FTP geschrieben (NICHT SFTP) Option, Login und Passwort, vollständige Ablaufverfolgung und 2>&1 für alle anderen Fehler. Ich konnte das skripten, weil die Dateinamen lokal waren und von einer Skriptlogik greppt werden konnten.

Grundsätzlich ist meine zu sendende Curl-Anweisung folgende(Nein, das sind keine echten Referenzen in der Zeichenfolge, ich habe diese Werte aus Datenschutzgründen geändert.):

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

Wobei alle oben genannten Referenzen in einem Skript stehen und die Referenzen auf die Pfade usw. in Variablen in einer Schleife abgelegt werden, die stündlich Hunderte von Dateien verarbeitet. Im funktionierenden Skript sieht das ungefähr so ​​aus:

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

Eine ganz andere Sache ist es, wenn Sie die Namen der abzurufenden/empfangenden Dateien nicht kennen.

Ich habe mir viele Beispiele angesehen, bei denen die Schleife auf der Grundlage einer „Curl-Auswertung“ wie dieser ausgeführt wird:

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)}')

Aber ich kriege es einfach nicht hin, dass so etwas funktioniert, um unter demselben Protokoll und derselben Authentifizierung abzurufen/zu empfangen. Ich bin sicher, dass ich etwas Offensichtliches übersehe.

Ich bin offen für eine Lösung oder sogar Alternativen, solange sie in Bash skriptfähig ist und nicht Expect verwendet.kann SFTP verwendenUND ich kann eine vollständige Ablaufverfolgung und Protokollierung von stdin, stdout und stderr erhalten.

Ich bin nicht bereit, „Erwarten“ zu verwenden.

Antwort1

wgetfür die Rettung. wgetKonzipiert für Dateiübertragung und Protokollierung.

verwandte Informationen