Gravatar de Armonth

Un curioso y molesto comportamiento del WGET


Acabo de leer una resumida entrada en el blog de Dreamhost acerca de una funcionalidad de WGET.

En la entrada comentan como han decidido añadir “continue = on” al fichero /etc/wgetrc debido al uso que se hace del wget con el cronjob.

El cronjob es un “administrador de tareas” que ejecuta lo que se le dicte a la hora que se le dicte, es un programa muy usado para todo tipo de tareas automatizadas o para automatizarlas (hacer copias de seguridad tal día, pasar a limpio unos registros HTTP para los programas de estadísticas, reiniciar servidores).

Prácticamente cualquier tarea que se pueda ejecutar en uno o varios comandos se puede automatizar con cron. Wget es de sobras conocido para bajar vía interprete de comandos un fichero en una dirección HTTP.

El problema viene cuando wget por defecto si intenta guardar un fichero en un lugar que ya existe un fichero con el mismo nombre, lo creará terminado en “.1″, si este ya existe con “.2″ y así.

Es ahí donde empieza lo divertido: cuántos más ficheros crea más comprobaciones hace para ver que “fichero.1″ está cogido, “fichero.2″ también, “fichero.3″ también.

Creando problemas de rendimiento, espacio en disco duro, cientos de ficheros “basura” (normalmente) que no son usados, etcétera.

Y pensar que hace tres o cuatro años un cronjob+wget me trajo muchos dolores de cabeza en un servidor web…

6 Comentarios

  1. DragoN:

    puedes solucionar esoconel parametro -c en el wget

    wget -c url/archivo.tar.gz

    Monday, 30 de March/2009 @ 3:25

  2. talishte:

    No tiene sentido usar wget sin la opción -c el problema es de capa 8 osea de la persona que realiza el script

    Monday, 30 de March/2009 @ 9:51

  3. Armonth:

    Precisamente eso es lo que han decidido hacer: activar por defecto el “continue” (-c). Aproveche ese post para comentarlo porque en su día (no niego que por ignorancia) me trajo problemas =)

    Monday, 30 de March/2009 @ 15:23

  4. Fernando:

    Cuando quiero tener la última versión de un fichero utilizo -N (–timestamping) de esta forma wget comprueba las fechas y reemplaza el archivo local si el origen es más reciente.

    Saludos

    Monday, 30 de March/2009 @ 21:28

  5. garaged:

    a su mamá !!, está complicado agregar una linea con “rm archivo” ??

    Tuesday, 31 de March/2009 @ 0:34

  6. Pedro:

    Muchas gracias por el artículo.

    Friday, 10 de April/2009 @ 18:17

Comentarios cerrados