
私は Red Hat Linux 7.5 環境を使用しています。特定のファイル拡張子で終わるフォルダーから任意のファイルをプル/受信する curl スクリプトを作成しようとしています。
以前、私はFTPSでcurlを使用してプッシュ/送信するスクリプトを書きました(SFTPではない) オプション、ログインとパスワード、完全なトレース ログ、その他のエラーの場合は 2>&1 です。ファイル名がローカルであり、スクリプト ロジックによって grep できるため、スクリプト化できました。
基本的に送信するcurlステートメントは次のようになります(いいえ、それらは文字列内の実際の参照ではありません。プライバシーのためにそれらの値を変更しました。):
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
上記のすべての参照はスクリプト内にあり、パスなどへの参照は、毎時 100 個のファイルを処理するループ内の変数に格納されます。動作中のスクリプトでは次のようになります。
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を使用できるさらに、stdin、stdout、stderr の完全なトレースとログを取得できます。
私は「Expect」を使うつもりはありません。
答え1
wget
救助用。wget
ファイル転送とログ記録用に設計されています。