Estou usando o wget para espelhar alguns arquivos de um servidor para outro. Estou usando o seguinte comando:
wget -x -N -i http://domain.com/filelist.txt
-x = Porque eu quero manter a estrutura de diretórios
-N = Carimbo de data e hora para obter apenas novos arquivos
-i = Para baixar uma lista de arquivos de um arquivo externo, um em cada linha.
Arquivos pequenos, como um que estou testando, têm um grande download de 326kb.
Mas outro de 5gb baixa apenas 203mb e depois para (é sempre 203mb mais ou menos alguns kilobytes)
A mensagem de erro mostrada é:
Não é possível gravar em âpath / to / file.zipâ
(Não sei ao certo por que existem caracteres estranhos antes e depois. Estou usando o Putty no Windows e isso pode ou não ter algo a ver com isso, por isso deixei-os dentro. Presumo que não.).
A resposta completa é a seguinte: (Substituí caminhos, ip e nome de domínio)
--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Resolvendo domínio.com ... MY_IP Conectando ao domínio.com | MY_IP |: 80 ... conectado. Solicitação HTTP enviada, aguardando resposta ... 200 OK Comprimento: 161 [texto / sem formatação] Arquivo do servidor não mais recente que o arquivo local âdomínio.com / filelist.txt ”
--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Conectando ao domain.com | MY_IP |: 80 ... conectado. Solicitação HTTP enviada, aguardando resposta ... 200 OK Comprimento: 5502192869 (5.1G) [application / zip] Os tamanhos não correspondem (local 213004288) - em recuperação.
--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Conectando ao domain.com | MY_IP |: 80 ... conectado. Solicitação HTTP enviada, aguardando resposta ... 200 OK Comprimento: 5502192869 (5.1G) [application / zip] Salvando em: âdomínio.com / caminho / para / arquivo.zipâ
3% [====>
] 213.003.412 8,74M / s em 24sNão é possível gravar em âdomain.com / path / to / file.zipâ
Parece não fazer diferença se o diretório do caminho já existe ou é criado em tempo real.
Alguém tem alguma idéia de por que parar e como posso corrigi-lo?
Qualquer ajuda com ser mais apreciado.
Edição: Eu também tentei apenas fazer um wget, sem entrada de arquivo e renomear o arquivo. Desta vez, ele baixa um pouco mais de 3 GB e depois dá o mesmo erro de gravação.
wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip
fonte
-O
opção de modowget -O test.zip http://link
Respostas:
Você receberá esse erro se estiver sem espaço em disco. execute df e você verá se o diretório para o qual está gravando está 100%
fonte
É um problema com URL longo. Eu também enfrentei. Então, usei o bit.ly e reduzi o URL. Funciona como um encanto!
fonte
wget
processo em potencial .wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
Acabei de adicionar um
-
aotar
comando após o pipe após o wgeteu tinha
então mudei para
fonte
Se ele começar a salvar um arquivo grande e gravar 203 MB, eu suspeitaria que você tenha um sistema de arquivos completo no lado receptor ou a conexão de rede esteja atingindo o tempo limite.
Você pode usar df -h no servidor de recebimento para verificar se o sistema de arquivos está cheio
Confira esta resposta para problemas de tempo limite com o wget:
/programming/2291524/does-wget-timeout
Além disso, tente novamente a transferência que falhou e omita a opção -N timestamp
Além disso, execute ulimit -a para verificar se há um limite de tamanho de arquivo no servidor de recebimento
fonte
Finalmente descobri e era uma questão de espaço. É um problema com o 1and1 Cloud Server, mais sobre isso aqui: http://www.mojowill.com/geek/1and1-dynamic-cloud-server-disk-allocation/
fonte
Eu estava fazendo algo parecido com:
Eu estava recebendo:
No meu arquivo filelist.txt equivalente, eu tinha um URL como:
Então, para depurar, tentei criar o mesmo arquivo que o wget estava tentando criar:
Viola! Parece que esse
?
foi o problema, mas a boa prática seria remover todos os caracteres especiais dos nomes dos arquivos, imagine o que a&
ação fará se não for escapada.fonte