Estou em um ambiente Red Hat Linux 7.5. Estou tentando escrever um script curl para extrair/receber qualquer arquivo de uma pasta que termine com uma extensão de arquivo específica.
Anteriormente, escrevi um script para enviar/enviar usando curl com o ftps (NÃO SFTP), login e senha, registro de rastreamento completo e 2>&1 para quaisquer outros erros. Consegui criar um script porque os nomes dos arquivos eram locais e podiam ser usados por alguma lógica de script.
Basicamente, minha declaração curl para enviar é esta(Não, essas não são referências reais na string, alterei esses valores para privacidade.):
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
Onde todas as referências acima estão em um script e as referências aos caminhos e outros enfeites são colocadas em variáveis em um loop processando centenas de arquivos a cada hora. Parece algo assim no script de trabalho:
curl $curlFTPC $curlTRCMD\_$trFlCntr\_$cntnt.txt $curlSF/$file $curlAHaD &>> $prcssLgFl
É uma questão completamente diferente quando você não sabe os nomes dos arquivos que irá extrair/receber.
Eu vi muitos exemplos que fazem loop com base em uma 'avaliação curl' como esta:
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)}')
Mas simplesmente não consigo fazer algo assim funcionar para receber/receber sob o mesmo protocolo e autenticação. Tenho certeza de que estou perdendo algo óbvio.
Estou aberto a uma solução ou mesmo alternativas, desde que seja possível scriptar no bash e não esteja usando o Expect,pode usar sftpE posso ter um rastreamento completo e registro de stdin, stdout e stderr.
Não estou aberto a usar 'Expect'.
Responder1
wget
para o resgate. wget
projetado para transferência de arquivos e registro.