wget comienza a descargar y luego detiene "no se puede escribir"

13

Estoy usando wget para reflejar algunos archivos de un servidor a otro. Estoy usando el siguiente comando:

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

-x = Porque quiero mantener la estructura del directorio

-N = Marca de tiempo para obtener solo archivos nuevos

-i = Para descargar una lista de archivos de un archivo externo, uno en cada línea.

Pequeños archivos como uno que estoy probando que es una gran descarga de 326 kb muy bien.

Pero otro que es de 5 GB solo descarga 203 MB y luego se detiene (siempre es 203 MB más o menos unos kilobytes)

El mensaje de error que se muestra es:

No se puede escribir en âpath / to / file.zipâ

(No estoy seguro de por qué hay caracteres extraños antes y después. Estoy usando Putty en Windows y esto puede o no tener algo que ver con eso, así que los dejé. Supongo que no).

La respuesta completa es la siguiente: (he reemplazado rutas, ip y nombre de dominio)

--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Resolviendo domain.com ... MY_IP Conectando a domain.com | MY_IP |: 80 ... conectado. Solicitud HTTP enviada, esperando respuesta ... 200 OK Longitud: 161 [texto / plano] Archivo del servidor no más reciente que el archivo local âdomain.com / filelist.txtâ

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Conectando a domain.com | MY_IP |: 80 ... conectado. Solicitud HTTP enviada, esperando respuesta ... 200 OK Longitud: 5502192869 (5.1G) [aplicación / zip] Los tamaños no coinciden (local 213004288) - recuperación.

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Conectando a domain.com | MY_IP |: 80 ... conectado. Solicitud HTTP enviada, esperando respuesta ... 200 OK Longitud: 5502192869 (5.1G) [application / zip] Guardando en: âdomain.com / path / to / file.zipâ

3% [====>
] 213,003,412 8.74M / s en 24s

No se puede escribir en âdomain.com / path / to / file.zipâ

No parece hacer ninguna diferencia si el directorio de ruta ya existe o se crea sobre la marcha.

¿Alguien tiene alguna idea de por qué se detiene y cómo puedo solucionarlo?

Cualquier ayuda con ser más apreciada.

EDITAR: También he intentado simplemente hacer un wget, sin entrada de archivo y cambiar el nombre del archivo. Esta vez se descarga un poco más de 3 gb y luego da el mismo error de escritura.

wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip
John Mellor
fuente
¿Tienes algún personaje especial en tu camino?
JMeterX
¿Funciona como se espera si escribe "cd / tmp &&" antes del comando?
¿Tu disco está lleno?
Jenny D
El disco definitivamente no está lleno y no hay caracteres especiales. Aunque la longitud de la ruta es de 87 caracteres, algunas búsquedas en Google han mostrado algunos problemas con los nombres largos (aunque el nombre del archivo es de solo 29 caracteres). Falla de la misma manera en tmp.
John Mellor
@FreezeDriedPop Dado que su nombre de archivo es relativamente largo, puede cambiar usando la -Oopción, así quewget -O test.zip http://link
JMeterX

Respuestas:

7

Obtendrá este error si no tiene espacio en disco. ejecute df y verá si el directorio en el que está escribiendo está al 100%

Dom
fuente
4

Es un problema con una URL larga. Yo también lo enfrenté. Entonces, usé bit.ly y acorté la url. ¡Funciona de maravilla!

Namchester
fuente
¿Estás seguro? Parece poco probable que la descarga se inicie y se interrumpa en algún momento cuando el problema esté relacionado con la URL, que se usa solo al comienzo de la transacción.
Felix Frank
Si. Yo tuve el mismo problema. Intentalo.
Namchester
Creo que el problema es que Linux no puede reconocer la URL larga.
Namchester
Supongo que te refieres al caparazón? Porque el núcleo es definitivamente inocente de este fracaso. Incluso para el shell no es probable, pero si fuera el caso, nuevamente, la descarga ni siquiera podría comenzar: el shell se equivocaría incluso antes de bifurcar el wgetproceso prospectivo .
Felix Frank
1
Para mí fue una cadena de consulta en la url -wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
Damodar Bashyal
1

Acabo de agregar una -al tarcomando después de la tubería después de wget

yo tenía

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

luego lo cambió a

wget https://example.com/path/to/file.tar.gz -O - | tar -xzvf - -C /path/to/file
Shadi
fuente
No olvide el `-` para el alquitrán también :).
Shital Shah
0

Si comienza a guardar un archivo grande y escribe 203 MB, sospecharía que tiene un sistema de archivos completo en el extremo receptor o que la conexión de red se está agotando.

Puede usar df -h en el servidor receptor para ver si el sistema de archivos está lleno

Vea esta respuesta para problemas de tiempo de espera con wget:

/programming/2291524/does-wget-timeout

Además, vuelva a intentar la transferencia que falló y omita la opción de marca de tiempo -N

Además, ejecute ulimit -a para ver si hay un límite de tamaño de archivo en el servidor receptor

Usuario descontento
fuente
No soy un experto, pero creo que está ejecutando CentOS 6. Además, no estoy seguro de cómo verificar la representación de los personajes. Aunque comienza a descargar y descarga otros archivos más pequeños muy bien, no creo que ese sea el problema.
John Mellor
¿Los archivos que tiene éxito en la descarga tienen ALGUNOS personajes divertidos en sus nombres?
Usuario descontento
No, no hay caracteres extraños, a menos que un punto sea un carácter extraño, por ejemplo, "megapack_4.11.zip". Pero nuevamente lo he intentado solo con el nombre "bigfile.zip" y ocurre el mismo problema.
John Mellor
Tal vez es sólo la masilla que se establece en una representación con caracteres diferentes a UTF-8
DisgruntledUser
Sí, realmente no creo que ese sea el problema, solo lo mencioné porque estaba copiando y pegando de Putty. El verdadero problema no puede escribir.
John Mellor
0

Estaba haciendo algo similar a:

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

Estaba recibiendo

--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).

En mi archivo filelist.txt equivalente tenía una URL como:

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

Entonces, para depurar, intenté crear el mismo archivo que wget estaba tratando de crear:

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

¡Viola! Parece que ese ?fue el problema, pero una buena práctica sería eliminar todos los caracteres especiales de los nombres de archivo, imagine lo &que hará si no se escapa.

nikc
fuente