wget inizia il download, quindi interrompe "impossibile scrivere"


13

Sto usando wget per eseguire il mirroring di alcuni file da un server all'altro. Sto usando il seguente comando:

wget -x -N -i http://domain.com/filelist.txt

-x = Perché voglio mantenere la struttura delle directory

-N = Timestamp per ottenere solo nuovi file

-i = Per scaricare un elenco di file da un file esterno, uno su ogni riga.

Piccoli file come quello che sto testando sono 326kb di download grande bene.

Ma un altro da 5 GB scarica solo 203 MB e quindi si interrompe (è sempre 203 MB dare o prendere pochi kilobyte)

Il messaggio di errore visualizzato è:

Impossibile scrivere su âpath / to / file.zipâ

(Non sono sicuro del perché ci siano degli strani personaggi prima e dopo. Sto usando Putty in Windows e questo potrebbe avere o meno qualcosa a che fare con esso, quindi li ho lasciati lì. Presumo di non pensarlo.).

La risposta completa è la seguente: (ho sostituito percorsi, ip e nome dominio)

--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Risoluzione di domain.com ... MY_IP Connessione a domain.com | MY_IP |: 80 ... connesso. Richiesta HTTP inviata, in attesa di risposta ... 200 OK Lunghezza: 161 [testo / semplice] File del server non più recente del file locale âdomain.com / filelist.txtâ

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Connessione a domain.com | MY_IP |: 80 ... connesso. Richiesta HTTP inviata, in attesa di risposta ... 200 OK Lunghezza: 5502192869 (5.1G) [application / zip] Le dimensioni non corrispondono (213004288 locale) - recupero.

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Connessione a domain.com | MY_IP |: 80 ... connesso. Richiesta HTTP inviata, in attesa di risposta ... 200 OK Lunghezza: 5502192869 (5.1G) [application / zip] Salvataggio in: âdomain.com / path / to / file.zipâ

3% [====>
] 213.003.412 8,74 M / s in 24 secondi

Impossibile scrivere su âdomain.com / path / to / file.zipâ

Non sembra fare alcuna differenza se la directory del percorso esiste già o viene creata al volo.

Qualcuno ha idea del perché si sia fermato e come posso ripararlo?

Qualsiasi aiuto con sarà apprezzato.

EDIT: ho anche provato a fare solo una wget, nessun input di file e rinominare il file. Questa volta scarica poco più di 3 GB e quindi dà lo stesso errore di scrittura.

wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip

Hai dei caratteri speciali nel tuo percorso?
JMeterX,

Funziona come previsto se si digita "cd / tmp &&" prima del comando?

Il tuo disco è pieno?
Jenny D,

Il disco non è sicuramente pieno e non ci sono caratteri speciali. Sebbene la lunghezza del percorso sia di 87 caratteri, alcuni googling hanno mostrato alcuni problemi con nomi lunghi (il nome del file è solo 29 caratteri). Non riesce allo stesso modo in tmp.
John Mellor,

@FreezeDriedPop Dato che il nome del tuo file è relativamente lungo, puoi cambiare usando l' -Oopzione quindiwget -O test.zip http://link
JMeterX

Risposte:


7

Questo errore verrà visualizzato se lo spazio su disco è insufficiente. esegui df e vedrai se la directory in cui stai scrivendo è al 100%


4

Si tratta di un problema con un URL lungo. L'ho affrontato anche io. Quindi, ho usato bit.ly e abbreviato l'URL. Funziona come un fascino!


Sei sicuro? Sembra improbabile che il download inizi e si interrompa a un certo punto quando il problema è correlato all'URL, che viene utilizzato solo all'inizio della transazione.
Felix Frank,

Sì. Ho avuto lo stesso problema. Provalo.
Namchester,

Penso che il problema sia che Linux non è in grado di riconoscere l'URL lungo.
Namchester,

Suppongo che intendi il guscio? Perché il kernel è sicuramente innocente di questo fallimento. Anche per la shell non è probabile, ma se fosse il caso, ancora una volta, il download non potrebbe nemmeno iniziare: la shell si sbaglierebbe anche prima di perdere il potenziale wgetprocesso.
Felix Frank,

1
Per me era una stringa di query wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
sull'URL

1

Ho appena aggiunto -a al tarcomando dopo la pipe dopo wget

avevo

wget https://example.com/path/to/file.tar.gz -O -|tar -xzf -C /path/to/file

quindi cambiato in

wget https://example.com/path/to/file.tar.gz -O - | tar -xzvf - -C /path/to/file

Non dimenticare il `-` anche per tar :).
Shital Shah,

0

Se inizia a salvare un file di grandi dimensioni e ne scrive 203 MB, sospetto che tu abbia un file system completo sul lato ricevente o che la connessione di rete stia scadendo.

Puoi usare df -h sul server ricevente per vedere se il filesystem è pieno

Dai un'occhiata a questa risposta per problemi di timeout con wget:

/programming/2291524/does-wget-timeout

Inoltre, riprovare il trasferimento non riuscito e omettere l'opzione -N timestamp

Inoltre, eseguire ulimit -a per vedere se esiste un limite di dimensione del file sul server ricevente


Non sono un esperto, ma penso che sia in esecuzione CentOS 6. Inoltre non sono sicuro di come controllare la rappresentazione del personaggio. Anche se inizia a scaricare e scaricare altri file più piccoli bene, quindi non credo che il problema sembri.
John Mellor,

I file che riesce a scaricare hanno QUALSIASI personaggio divertente nei loro nomi?
Scontentato

No, nessun personaggio strano, a meno che un punto non sia uno strano personaggio, ad esempio "megapack_4.11.zip". Ma ancora una volta l'ho provato solo con il nome "bigfile.zip" e si verifica lo stesso problema.
John Mellor,

Forse è solo Putty impostato su una rappresentazione del carattere diversa da UTF-8
DisgruntledUser

Sì, non penso proprio che sia questo il problema, l'ho appena menzionato mentre stavo copiando e incollando da Putty. Il vero problema a cui non è possibile scrivere.
John Mellor,


0

Stavo facendo qualcosa di simile a:

wget -x -N -i http://domain.com/filelist.txt

Stavo ricevendo:

--2016-12-09 07:44:23--  https://www.example.com/dir/details?abc=123&def=456
Resolving www.example.com (www.example.com)... 1.2.3.4
Connecting to www.example.com (www.example.com)|1.2.3.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
details?abc=123&def=456: No such file or directory

Cannot write to ‘details?abc=123&def=456’ (Success).

Nel mio file filelist.txt equivalente avevo un URL come:

https://www.example.com/dir/details?abc=123&def=456

Quindi per il debug ho provato a creare lo stesso file che wget stava cercando di creare:

touch "details?abc=123&def=456"
touch: cannot touch ‘details?abc=123&def=456’: No such file or directory

Viola! Sembra che il ?problema sia stato, ma la buona pratica sarebbe quella di rimuovere tutti i caratteri speciali dai nomi dei file, immaginare cosa &farà la volontà se non fosse sfuggito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.