Copiar una Web

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

Els últims mesos vaig veure que una web molt interessant per mi s'aturava intermitentment i tornava a posar-se en marxa cada pocs dies, avui he vist que torna a estar activa, per lo que he volgut fer-ne una copia,

Truc

He buscat en el Google per un bon programa descarregador de webs per Linux, molta gent recomana el d4x. L'he provat, instal·lo el programa amb apt-get

apt-get install d4x

executo el programa i poso el nom de la web a descarregar, però falla al composar el nom de les URL's de primer nivell i tampoc copia els fitxers que hi ha en els directoris on només hi ha dades.

Després ho he intentat amb el wget, que també permet la recursivitat en una web per tal de fer una copia, i quina sorpresa, consultant el man wget he vist que hi ha una opció de mirror. He executat:

wget -m http://www.freeantennas.com/ -o log

ha fet una copia complerta, amb tots els fitxers.

Ara provo d'agafar només els fitxers d'un directori, amb wget els descarrego i els guardo en un directori temporal. Faig un petit programa bash

#!/bin/bash -x
# copiar-fitxers.sh

SITE="http://www.inter.net/path"

TMPDIR=/tmp/fitxers.$$
mkdir $TMPDIR
/usr/bin/wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -P $TMPDIR $SITE
exit 0

descarrega tots els fitxers d'aquest directori, i tant sols desa els acabats amb .mp3

Conclusió

el wget és una utilitat molt antiga, i plena de funcionalitat!

Referències

Pàgina man wget