Submitted by tty0 on
bonjour,
j'aimerai savoir si il est possible de créer une "archive" de mon site web sous drupal. Je m'explique: le site a été construit pour un évenement fin 2005. Cet évenement fini, il se reproduira cette année, le site servira comme l'année dernière de base d'information, mais j'aimerai sauvegarder quelque part (en ligne et accessible) tous les documents de l'année dernière, et remttre en place "un nouveau" site, de la meme forme que le precedent (en utilisant le squelette deja existant afin de pouvoir y mettre les nouveaux documents). Je vous laisse mon site pour vous faire une idée:
http://octobreverre.free.fr
Merci d'avance.
Pour archiver un site, il
Permalien Soumis par patechinois le 25 Mai, 2006 - 14:26
Pour archiver un site, il faut archiver la base de données SQL ainsi que les fichiers constituant le site.
Avec MySQL, il s'agit d'utiliser mysql_dump, et pour le site, un simple tar cfz dans le répertoire qui contient le répertoire du site devrait faire l'affaire.
Si le site est sous une routine régulière de sauvegarde (backup automatique), alors il n'y a pas grand chose à faire, les archives se construisent automatiquement et continuellement (selon la routine de backup).
Voici ma routine de backup (/etc/cron.daily/mysql_dump). Cette routine sauvegarde la base de donnée MySQL sur une base régulière. Le backup de chaque mois est conservé indéfiniment, et les backups journaliers sont réécrits à chaque semaine:
# Backup script for mysql database
COMPUTER=tux
BACKUPDIR=/root/mysql_dump
TIMEDIR=/root/mysql_dump/last_dump
DUMP=/usr/bin/mysqldump
SESAME=mot_de_passe
WHO=nom_d_usager_mysql
DB="--opt --all-databases"
if [ ! -d $BACKUPDIR ]; then
mkdir $BACKUPDIR
fi
if [ ! -d $TIMEDIR ]; then
mkdir $TIMEDIR
fi
# you shouldn't have to change anything below
DOW=
date +%a
# Day of the week e.g. MonDOM=
date +%d
# Date of the Month e.g. 27DM=
date +%d%b%Y
# Date,Month,Year e.g. 27Sep2003NOW=
date +%d-%b
# Monthly dump is kept
if [ $DOM = "01" ]; then
#echo Monthly backup
echo $NOW >$TIMEDIR/$COMPUTER-monthly
#echo $DUMP $DB -u $WHO -p$SESAME '|' bzip2 -c >'$BACKUPDIR/$COMPUTER-$DM.mysqldump.bz2
$DUMP $DB -u $WHO -p$SESAME | /bin/bzip2 -c >$BACKUPDIR/$COMPUTER-$DM.mysqldump.bz2
fi
# Daily backups are kept for one week then filenames are reused
if [ $DOW = "Sun" ]; then
#echo Daily Sunday backup
echo $NOW >$TIMEDIR/$COMPUTER-weekly
#echo $DUMP $DB -u $WHO -p$SESAME '|' bzip2 -c '>'$BACKUPDIR/$COMPUTER-$DOW.mysqldump.bz2
$DUMP $DB -u $WHO -p$SESAME | bzip2 -c >$BACKUPDIR/$COMPUTER-$DOW.mysqldump.bz2
else
#echo Daily backup
echo $NOW >$TIMEDIR/$COMPUTER-daily
#echo $DUMP $DB -u $WHO -p$SESAME '|' bzip2 -c '>'$BACKUPDIR/$COMPUTER-$DOW.mysqldump.bz2
$DUMP $DB -u $WHO -p$SESAME | bzip2 -c >$BACKUPDIR/$COMPUTER-$DOW.mysqldump.bz2
fi
Pour faire un backup du site, j'utilise rsync. Dans mon cas, j'ai deux ordinateurs. Le serveur du site (ordi A) et un maitre backup (ordi B). Le serveur du site contient donc aussi un serveur rsync (rsyncd). Le maitre backup (ordi B) s'adresse au serveur rsync (ordi A) pour obtenir une copie intégrale du site sur une base régulière.
Sur le serveur du site, ordi A, j'ai le serveur rsync suivant:
# /etc/rsyncd.conf
# $Header: /var/cvsroot/gentoo-x86/net-misc/rsync/files/rsyncd.conf,v 1.6 2005/03/24 03:1
2:45 vapier Exp $
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
uid = root
gid = root
use chroot = yes
hosts allow = 192.168.0.2/255.255.255.0
hosts deny = *
max connections = 5
log file = /var/log/rsync.log
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
[drupalfr]
path = /home/drupalfr
comment = web
list = yes
read only = yes
auth users = usager_autorise
secrets file = /etc/rsync/rsyncd.secrets
[mysql]
path = /root/mysql_dump
comment = MySQL Dumps
list = yes
read only = yes
auth users = usager_autorise
secrets file = /etc/rsync/rsyncd.secrets
L'adresse 192.168.0.2 correspond à l'adresse IP du maitre backup. Seul le maitre backup est autorisé à communiquer avec le serveur rsyncd.
Le fichier rsyncd.secrets sur le serveur du site (ordi A) contient:
usager_autorise:mot_de_passe
Sur le maitre backup, ordi B, j'ai le cron job suivant:
# /etc/cron.hourly/rsync_tux.cron
#!/bin/sh
PASSFILE=/etc/cron.hourly/rsync.password
OPTIONS='-azq --recursive'
RSYNC=/usr/bin/rsync
$RSYNC $OPTIONS --password-file=$PASSFILE usager_autorise@tux::mysql /backup/tux/mysql
$RSYNC $OPTIONS --password-file=$PASSFILE usager_autorise@tux::drupalfr /home/drupalfr
date >/backup/tux/LATEST_BACKUP_DATE
Où usager_autorise est le même usager que dans rsyncd.secrets.
Finalement, toujours sur le maitre backup (ordi B), le fichier
identifié dans par PASSFILE=/etc/cron.hourly/rsync.password contient:
mot_de_passe
qui est le même mot de passe quand dans rsyncd.secrets.
merci beaucoup pour cette
Permalien Soumis par tty0 le 29 Mai, 2006 - 23:10
merci beaucoup pour cette réponse détaillée. Je vais essayé votre facon avec vos scipts, c'est pas trop évident mais on va bien voir, encore merci ! ca servira à plein d'autres personnes qui sont dans mon cas !