• Come fare il backup del sito: Virtual Hosting

    Una delle problematiche ricorrenti per i possessori di un sito su una struttura esterna è il backup regolare dei file, che si prospetta abbastanza difficile quando non si ha alcun accesso al server stesso. Il normale download dei file tramite FTP è possibile, ma spesso lento e, soprattutto, cumulativo.

    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