Per ottenere una copia identica dei file attualmente installati lato server, si dovrebbe fare ogni volta un download completo, che si rispecchia poi in costi aggiuntivi per la banda consumata e in tempi di attesa che vanno da alcune ore a intere giornate. Quando poi cade la linea o si riavvia il computer, si rischia avere una copia inconsistente con file incompleti o mancanti.
Chi viene da Linux, conosce probabilmente il programma wget, che permette di scaricare interi siti o singoli file con il protocollo FTP o addirittura con HTTP in modo automatico e sicuro. Ogni qualvolta che si interrompe un download e si ricomincia da capo, salvo impostazioni particolari, sceglie autonomamente il modo più accurato per riprendere dove si è terminati in precedenza. wget è il mezzo ideale per fare il backup, dove non si possono appliccare altri metodi, quali ad esempio rsync, lftp o rcp.
Fortunatamente, anche gli utenti Windows possono utilizzare wget, in quanto ci sono pacchetti con i file binari di questa utilità. Si trovano a questo collegamento. Gli utenti Linux l'hanno di regola già installato, in quanto utilizzato dal sistema stesso per scaricare gli aggiornamenti. Dopo l'installazione è utile copiare wget.exe nella cartella C:\WINDOWS\system32, in modo di poter accedere da qualunque cartella senza specificare il percorso assoluto del programma.
Per provare wget, apriamo una finestra DOS (Esegui: cmd.exe) o terminale e scriviamo:
wget --no-verbose --ftp-user=nome_utente --ftp-password=nostra_password --timestamping --recursive --restrict-file-names=windows --level=inf ftp://dominio.tld/
dove:
- --no-verbose rende la lettura semplice
- --ftp-user=nome_utente identifica il nostro nome utente FTP
- --ftp-password=nostra_password è la password per accedere all'account FTP
- --timestamping indica che vogliamo utilizzare la data e ora originale dei file e che scarichiamo soltanto i file più recenti o mancanti
- --recursive indica che vogliamo tutti i file e sottocartelle
- --restrict-file-names=windows indica che vogliamo utilizzare la convenzione dei nomi Windows
- --level=inf indica nessun limite di profondità
- ftp://dominio.tld/ infine è la URL o l'IP (ftp://1.2.3.4/) per accedere al server FTP
Il comando qui indicato accede quindi al sito FTP e crea una cartella nuova nella cartella corrente con il nome sito o IP indicato. Ad esempio, se il sito è ftp://www.vbulletin.it/, la cartella sarà nominata www.vbulletin.it, e la struttura del sito sarà salvato nelle sue sottocartelle. Qualora sia necessario salvare il backup altrove, è necessario aggiungere l'opzione --directory-prefix=PREFIX, dove PREFIX contiene il percorso desiderato, ad esempio:
wget --no-verbose --ftp-user=nome_utente --ftp-password=nostra_password --timestamping --recursive --restrict-file-names=windows --level=inf --directory-prefix=C:\backup\ ftp://dominio.tld/
oppure, per Linux:
wget --no-verbose --ftp-user=nome_utente --ftp-password=nostra_password --timestamping --recursive --restrict-file-names=windows --level=inf --directory-prefix=/home/backup/ ftp://dominio.tld/
Per scaricare soltanto una parte delle cartelle, è possibile aggiungere un percorso al nome sito, ad esempio:
wget --no-verbose --ftp-user=nome_utente --ftp-password=nostra_password --timestamping --recursive --restrict-file-names=windows --level=inf ftp://dominio.tld/mio/percorso/ristretto/
Se non si vuole utilizzare il nome del sito, allora si aggiunge l'opzione --no-host-directories. A questo punto però conviene controllare bene che non si sovrasscrivono incidentalmente file e cartelle. Le altre opzioni sono usate raramente e si possono consultare con:
wget --help