Wget vários arquivos FTP sem fazer login novamente em todos os arquivos

2

Digamos que há um site de FTP com vários arquivos que eu quero baixar - ftp://ftp.example.com , e eles permitem um "login anônimo" no FTP.

Suponha que o ftp://ftp.example.com tenha

file1.zip, 
file2.zip, 
... ,
file100.zip

Suponha também que eu tenha uma lista dos caminhos de arquivo que eu quero baixar todos em uma variável bash da seguinte forma:

paths="ftp://ftp.example.com/file1.zip ftp://ftp.example.com/file7.zip"

Existe uma maneira de fazer wget $paths (ou seja, baixar minha lista de dois arquivos) sem ter que ver o wget fazer para cada arquivo:

Connecting to ftp.example.com|10.10.10.10|:21... connected.
Logging in as anonymous ... Logged In!

onde o wget efetua login no autentico com o site uma vez para cada arquivo que eu baixar?

    
por Avid Coder 20.10.2018 / 03:20

2 respostas

1

Como alternativa, você pode usar o ftp antigo. Configure uma sub-rotina para ftp.example.com no seu arquivo ~/.netrc :

machine ftp.example.com
  login ftp
  password anonymous

... garanta que o arquivo não seja legível por ninguém:

chmod 600 ~/.netrc

Em seguida, envie os comandos ftp por meio de um documento here para recuperar os arquivos:

ftp ftp.example.com <<'EOF'
prompt
mget file*.zip
bye
EOF

Alguns clientes ftp podem suportar a opção -i para desativar a solicitação de mget , negando a necessidade do comando prompt na lista.

Usar isso estabelecerá uma única sessão ftp para todas as transferências de arquivos.

    
por 27.10.2018 / 23:38
0

Eu acho que você quer a dica número 9 em página.

Basicamente, baixe vários arquivos com wget -i,

$ cat > download-file-list.txt
URL1
URL2
URL3
URL4

$ wget-i download-file-list.txt
    
por 20.10.2018 / 04:00

Tags