Rsync per il backup incrementale di un sito web

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Re: Rsync per il backup incrementale di un sito web

Messaggio da sberla54 »

Intendo questo
http://wiki.thiesen.org/page/Fuseftp
o questo
http://curlftpfs.sourceforge.net/
Dopo fai la stessa cosa per i backup di due directory nel tuo filesystem, come per i backup della /home per esempio
Uhm, un po' brigoso ma si puo' fare. Speravo fosse piu' semplice, ad ogni modo.

Nel frattempo ho scritto all'assistenza dell'hosting che non mi ha saputo dire perche' Sitecopy non ne vuole sapere di funzionare. Mi ha consigliato di rivolgerli al forum del programma...cosa che non ho ancora fatto....
Tu conraid non hai idea del perche' non funzioni?
A me han consigliato di controllare se e' attivo il passive mode e controllare se la porta di utilizzo e' la 22.

L'errore e' un errore relativo al listing dei files, quindi puo' darsi che io semplicemente non gli dia il giusto path remoto...

Ritiro fuori il discorso sitecopy perche' ho pensato che se devo perdere un casino di tempo ad imparare un nuovo sistema di backup, tanto vale, se possibile, impiegare quello stesso tempo per fare rifunzionare il vecchio e collaudato sistema.

Discorso simile per lftp, che rimarrebbe la seconda scelta.

Hai ancora voglia/tempo di darmi una mano?
Fare i backup totali e' stressantissimo....

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Rsync per il backup incrementale di un sito web

Messaggio da conraid »

sberla54 ha scritto:
Intendo questo
http://wiki.thiesen.org/page/Fuseftp
o questo
http://curlftpfs.sourceforge.net/
Dopo fai la stessa cosa per i backup di due directory nel tuo filesystem, come per i backup della /home per esempio
Uhm, un po' brigoso ma si puo' fare. Speravo fosse piu' semplice, ad ogni modo.

Nel frattempo ho scritto all'assistenza dell'hosting che non mi ha saputo dire perche' Sitecopy non ne vuole sapere di funzionare. Mi ha consigliato di rivolgerli al forum del programma...cosa che non ho ancora fatto....
Tu conraid non hai idea del perche' non funzioni?
A me han consigliato di controllare se e' attivo il passive mode e controllare se la porta di utilizzo e' la 22.

L'errore e' un errore relativo al listing dei files, quindi puo' darsi che io semplicemente non gli dia il giusto path remoto...

Ritiro fuori il discorso sitecopy perche' ho pensato che se devo perdere un casino di tempo ad imparare un nuovo sistema di backup, tanto vale, se possibile, impiegare quello stesso tempo per fare rifunzionare il vecchio e collaudato sistema.

Discorso simile per lftp, che rimarrebbe la seconda scelta.

Hai ancora voglia/tempo di darmi una mano?
Fare i backup totali e' stressantissimo....
Io non uso più quei sistemi perché
1) il provider mi fa il backup di tutto una volta alla settimana
2) dove ho il database faccio fare il backup giornaliero
3) per aggiornare il sito con le modifiche uso quanta che funziona bene
4) attualmente seguo solo miei siti e la copia di riferimento è quella nel mio pc

Detto questo sitecopy non lo uso da tanto, ma lftp l'ho usato per fare le prove per vedere come mai non ti funzionava, ed a me funziona normalmente.
Il "problema" è che è un client ftp, e quindi prevede che tu entri in modalità ftp e poi fai mirror, però ha una funziona per lanciarlo con il comando da passargli (-c)
è un po' come "su" tanto per essere blasfemi :-)

Se vuoi lo provo meglio.

Su sitecopy quando ho tempo lo riprovo, se nel frattempo, anche via mail, mi mandi i log dell'errore ti faccio sapere
ciao

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Re: Rsync per il backup incrementale di un sito web

Messaggio da sberla54 »

Allora, dunque, con sitecopy non ne venivo a capo allora mi sono buttato su rsync, dato che me lo consigli e che mi sembra il tool migliore.

Ho seguito questa guida, creata apposta per il mio hosting, Media Temple, e la mia tipologia di server, il Grid server:
http://www.gosammy.com/2007/12/23/autom ... id-server/

Fondamentalmente basterebbe questo comando:

Codice: Seleziona tutto

#!/bin/bash
rsync -aze ssh serveradmin%domain.com@s99999.gridserver.com:/home/99999/ [insert destination path]
a cui bisogna ovviamente sostituire dei parametri:
* Replace the domain.com with your primary grid-server domain
* Replace the two instances of 99999 with your gridserver account number
* Insert a destination path in place of [insert destination path]. An example of a destination path is:
/Volumes/Macintosh\ HD/Users/samlu/Backups/new


Io pero' ho voluto esagerare ed ho modificato gli script di backup che uso per i files del pc, scopiazzati dai tuoi Conraid, e ne ho creato uno per il sito:

Codice: Seleziona tutto

#!/bin/sh
# sberla54 - punk4free.org backup script - 08.12.2008
# based on a script by conraid - found on www.slacky.eu
#

SOURCE="serveradmin@punk4free.org@s46870.gridserver.com:/home/46870/"
DEST="/home/sberla54/punk4free.backup/punk4free_synch/"
OPTIONS="-azv --delete -e ssh"
#EXCLUDE="--exclude=arch"
LOG="/var/log/p4fbackup"
# You can read exclude and include list from files
#EXCLUDE="--exclude-from=backupexclude.txt"
#INCLUDE="--include-from=backupinclude.txt"

case "$1" in

"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;

"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;

"-bv" )
echo "Copying..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE $SOURCE $DEST
;;

*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
echo "-bv : Backup (verbose mode, no logs)"
exit
;;

esac
Sembra funzionare, senza bisogno di mettere mano a Fuse.

Ho solo un paio di problemi:

1)
Non cancella i file in locale. Ovvero, non cancella da locale quei files che sono stati cancellati da remoto, o almeno cosi' mi sembra.
Ho appena disinstallato un paio di componenti in remoto, ho controllato che (sempre in remoto) le loro directory non ci siano piu', ho avviato lo script ed ho notato che queste directory sono ancora presenti nel backup locale.
In pratica fa il lavoro a meta'.
Questo e' il log che viene creato avviando lo script con p4fbackup -b:

Codice: Seleziona tutto

Backup started at sab gen  3 23:22:10 CET 2009
receiving file list ... rsync: opendir "/home/46870/users/giarca" failed: Permission denied (13)
rsync: opendir "/home/46870/users/joel%punk4free.org" failed: Permission denied (13)
rsync: opendir "/home/46870/users/thepunkshow%punk4free.org" failed: Permission denied (13)
done
IO error encountered -- skipping file deletion
domains/punk4free.org/html/cache/_system/
domains/punk4free.org/html/cache/_system/539a1c4bbc772fddad7279089684b384.php
domains/punk4free.org/html/cache/_system/539a1c4bbc772fddad7279089684b384.php_expire
domains/punk4free.org/html/cache/aliroAuthoriser/
domains/punk4free.org/html/cache/aliroAuthoriser/00a3cb86b32a5054750fe9e28848b0b4.php
domains/punk4free.org/html/cache/aliroAuthoriser/00a3cb86b32a5054750fe9e28848b0b4.php_expire
domains/punk4free.org/html/cache/com_content/
domains/punk4free.org/html/cache/com_content/0fce1d4c4baf1c08081cfa0379f4ef96.php
domains/punk4free.org/html/cache/com_content/0fce1d4c4baf1c08081cfa0379f4ef96.php_expire
domains/punk4free.org/html/cache/com_content/2f9c87b586a22013e59fc13bd2031f53.php
domains/punk4free.org/html/cache/com_content/2f9c87b586a22013e59fc13bd2031f53.php_expire
domains/punk4free.org/html/cache/com_content/6e0137da40ec7811f6bd4313d3266c13.php
domains/punk4free.org/html/cache/com_content/6e0137da40ec7811f6bd4313d3266c13.php_expire
domains/punk4free.org/html/cache/com_content/8a107274736bb2b2f2e4eda6752feb5d.php
domains/punk4free.org/html/cache/com_content/8a107274736bb2b2f2e4eda6752feb5d.php_expire
domains/punk4free.org/html/cache/com_content/cd5a79e1400b73243f8c06ebe118fb51.php
domains/punk4free.org/html/cache/com_content/cd5a79e1400b73243f8c06ebe118fb51.php_expire
domains/punk4free.org/html/cache/mod_search/
domains/punk4free.org/html/cache/mod_search/07a61c56d4932efcd9f794ec0f84958d.php
domains/punk4free.org/html/cache/mod_search/07a61c56d4932efcd9f794ec0f84958d.php_expire
logs/error_log
rsync: send_files failed to open "/home/46870/stats/urchin/lock.udb": Permission denied (13)

sent 29888 bytes  received 335104 bytes  8794.99 bytes/sec
total size is 8654064691  speedup is 23710.29
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1506) [generator=3.0.4]
Se non erro questa riga:
IO error encountered -- skipping file deletion
significa proprio che salta la cancellazione dei files in locale?
Idee per risolvere?

2)
Non riesco ad automatizzare il login tramite le chiavi ssh pubbliche e private.
Ora come ora, ogni volta che avvio lo script, mi chiede la password dell'utente ftp (serveradmin).
Sto seguendo questa guida: http://linux.html.it/articoli/leggi/170 ... -con-le-c/ (con un occhi anche a questa: http://alex.amiran.it/20080123/rsync-via-ssh/ )
Ho creato le chiavi con ssh-keygen, ho inserito una passphrase per la generazione delle stesse, ho copiato /home/sberla54/.ssh/id_rsa.pub in /users/.home/.ssh/authorized_keys (file che prima non esisteva), ma ad ogni modo non riesco ad effettuare il login automatico.
Nei primi tentativi mi chiedeva la passphrase di generazione delle chiavi invece della password ftp...ora e' tornato a chiedermi la pass ftp.
Che sia perche' l'utente locale e quello remoto si chiamano diversamente?
O magari ho sbagliato la home remota in cui inserire i files? (Pero' l'utente serveradmin non ha una sua home diversa da quella....soltanto gli utenti con accesso ftp creati successivamente ce l'hanno).

Insomma, pensavo di aver risolto ma sono ancora incasinato; mi basterebbe risolvere il punto 1, per l'utilita' immediata, ed al 2 posso andarci dietro con calma.

Avatar utente
sberla54
Master
Master
Messaggi: 1500
Iscritto il: gio 24 giu 2004, 0:00
Slackware: 13.0
Desktop: Gnome (o Fluxbox)
Distribuzione: Ubuntu
Località: Bologna
Contatta:

Re: Rsync per il backup incrementale di un sito web

Messaggio da sberla54 »

Dunque, il punto 1 sono riuscito a risolverlo.
Praticamente ho limitato il backup alla sola directory /html/ del server, che e' quella che contiene il vero e proprio sito; nelle directory superiori ci sono le home degli altri admin, alcuni file di config del server e robe di questo tipo, che posso fare a meno di backuppare ma che mi danno svariati errori di permessi che portano a quell'IO Error di cui parlavo.

Quindi, lo script ora come ora e' cosi:

Codice: Seleziona tutto

#!/bin/sh
# sberla54 - punk4free.org backup script - 03.01.2009
# based on a script by conraid - found on www.slacky.eu
# include: source parziale, che prende in input solo la directory /html/ (contenente i veri e propri files del sito), invece
# che la directory totale del server, per ovviare al problema di IO Error che skippa la cancellazione files locale.
# guida di riferimento: http://www.gosammy.com/2007/12/23/automating-your-server-backups-on-media-temples-grid-server/
#

SOURCE="serveradmin@punk4free.org@s46870.gridserver.com:/home/46870/domains/punk4free.org/html/"
DEST="/home/sberla54/punk4free.backup/punk4free_synch/domains/punk4free.org/html"
#
### Inserendo il source completo si ha subito un IO Error che porta Rsync a skippare la cancellazione dei files in locale.
#SOURCE="serveradmin@punk4free.org@s46870.gridserver.com:/home/46870/"
#DEST="/home/sberla54/punk4free.backup/punk4free_synch/"
#
OPTIONS="-azv --delete -e ssh"
LOG="/var/log/p4fbackup"
#
#EXCLUDE="--exclude=nomecartella"
# You can read exclude and include list from files
#EXCLUDE="--exclude-from=backupexclude.txt"
#INCLUDE="--include-from=backupinclude.txt"

case "$1" in

"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;

"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;

"-bv" )
echo "Copying..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE $SOURCE $DEST
;;

*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
echo "-bv : Backup (verbose mode, no logs)"
exit
;;

esac
e funziona alla grande!

Se qualcuno ha qualche altra dritta per il punto 2, magari una guida fatta un po' meglio (ne ho lette varie ma sono molto confusionarie), e' ben accetta!

Rispondi