Wget mirror
Introducción
A raiz de la necesidad de replicar el repositorio de nodejs en un servidor interno (porque las máquinas que van a instalar paquetes no tienen acceso a internet) se me ocurrió buscar información sobre como hacer un mirror con WGET de un site remoto
Comando
El comando final que he usado es
wget -e robots=off --mirror -nH --no-parent --reject="index.html*" -I /dist/v0.10.0/ https://nodejs.org/dist/v0.10.0/
La explicación es la siguiente:
con el -e robots=off desactivamos la lectura del fichero robots, que impecía que pudiera hacer el mirror sobre el directorio /dist
--mirror atajo para -N -r -l inf --no-remove-listing,
estos parámetros son:
-N para que no se descargue el fichero si el de origen no es mas nuevo que el destino -r para que sea recursivo en los enlaces -l inf, para profundidad infinita -no-remove-listing, para no borrar los ficheros .listing
Además, a nuestro comando añadimos los siguientes parámetros:
-nH, para que en el directorio de destion no incluya un directorio padre con el nombre del host
--no-parent, supestamente no asciende al directorio raiz para descargarse contenido, pero no me ha funcionado del todo
--reject="index.html*", no se descarga los ficheros index.html*, ya que ese fichero es el que nos devuelve con la lista de ficheros, y realmente no existe, es por así decirlo virtual. De esta forma se borra
-I /dist/v0.10.0/ solo nos copia los enlaces que cumplan con ese patron, así evitamos descargar enlaces de fuera de este patron o del directorio padre