Retomar o download com falha usando a ferramenta de linha de comando Linux

37

Como retomo um arquivo parcialmente baixado usando uma ferramenta de linha de comando do Linux?

Eu baixei um arquivo grande parcialmente, ou seja, 400 MB dos 900 MB devido à interrupção de energia, mas quando inicio o download novamente, ele retoma do zero. Como começo a partir dos 400 MB?

amolveer
fonte
5
Qual linha de comando você usou para baixar o arquivo em primeiro lugar?
Anthon
3
Por favor, não responda em um comentário, atualize sua pergunta incompleta .
Anthon
1
Se você estiver usando curl, você deve procurar a -Copção na página de manual .
precisa saber é o seguinte

Respostas:

53

Como você não especificou, suponho que você esteja usando wgetpara baixar o arquivo. Se for esse o caso, tente usá-lo com a -copção (por exemplo wget -c <URL>).

Observe que, caso o protocolo usado seja ftp (a URL se parece ftp://...), há uma chance de o servidor remoto usar um daemon ftp antigo / antigo que não suporte a retomada de downloads (daemons ftp mais recentes o suportam por mais de uma década) , então essa é apenas uma pequena chance). Se for esse o caso, você pode estar sem sorte. Por outro lado, você não deve ter problemas se o protocolo usado for http. (ATUALIZAÇÃO: de acordo com outros especialistas (incluindo Gilles nos comentários abaixo), a retomada ao usar o http também está sujeita ao suporte do servidor, portanto, isso se aplica tanto ao ftp quanto ao http).

Boa sorte.

Marcelo
fonte
5
Os downloads HTTP só podem ser retomados se o servidor suportar, e isso é mais raro do que nos servidores FTP.
Gilles 'SO- stop be evil'
Obrigado Gilles, só tive boas experiências com a retomada ao usar o http, mas você provavelmente está certo e eu tenho sorte. Irá atualizar a minha resposta.
Marcelo
wget -c http:...trabalhou nos 3 ou 4 servidores em que experimentei.
Bob Stein
Deus te abençoe, cara!
aluno
3
@Gilles: Na verdade, agora é uma opção comum com qualquer conteúdo estático de servidores mais recentes que ~ 2010 (em outras palavras, a maioria dos servidores permite solicitações de alcance para arquivos estáticos por padrão). Para dados gerados dinamicamente, isso é realmente raro.
Piskvor
0

Eu sei o que a pergunta original significa, e a resposta não é wget -c ...

O cenário pode ser descrito assim:

# Start mirroring a site
wget -m http://...
# 400MB later wget died or interrupted,
# don't know where it left off, don't care,
# just want to get the remaining 100MB without getting the first 400MB again
wget -nc -r -l inf --no-remove-listing http://...

As opções "-r -l inf --no-remove-list" são equivalentes a -m sem o parâmetro -N. A adição do parâmetro -nc evita salvar os primeiros 400 MB já no seu disco rígido.

Michael Chen
fonte