======Scripts de sauvegarde ====== Voici des exemples, plutôt mal fait (pas de rotate), de scripts de backup rapides : ===== Sauvegarder un site ftp ===== On va chercher les données modifiées (mode mirror de lftp) sur le ftp, et on compresse en local. Le ménage doit être fait à la main. #!/bin/bash # sauvegarde des wiki de Galette # Loïs - v20070106 # DATE=$(date +%Y%m%d) echo "Sauvegarde du wiki fr+en" SITE="ftp.tuxfamily.org" USER="" PASSWD="" RPATH="galette/galette.tuxfamily.org-web/htdocs" ## mirror [options] distant (->) local ORDER_FR="open $SITE; user $USER,$PASSWD; cd $RPATH; mirror -cn fr wiki/" ORDER_EN="open $SITE; user $USER,$PASSWD; cd $RPATH; mirror -cn en wiki/" #FTP_ARGS="set ftp:passive off; set ftp:list-options -a;" #usage : lftp -c "$FTP_ARGS $ORDER_FR" lftp -c "$ORDER_FR" lftp -c "$ORDER_EN" tar -cjvf wiki-$DATE.tar.bz2 wiki/ echo "done" echo "--------------------" echo "Sauvegarde terminée." exit 0 ===== Sauvegarde d'un dépôt subversion ===== Ce script utilise une zone tampon locale, via rsync, pour éviter d'alourdir le traffic réseau en re-téléchargeant l'intégralité des données à chaque backup. Ce script n'a **aucun** mécanisme de ménage, il doit être fait à la main (barbare un jour, barbare toujours !). #!/bin/bash # sauvegarde du svn et du wiki de bos # Loïs - v20060110 # DATE=$(date +%Y%m%d) echo "Sauvegarde du dépot subversion" commande_dump="svnadmin dump /home/svn/repos/svn/bos > /home/bos/bos-svn-$DATE" commande_bzip="bzip2 bos-svn-$DATE" ssh bos@bos.seul.org "$commande_dump" ssh bos@bos.seul.org "$commande_bzip" scp bos@bos.seul.org:/home/bos/bos-svn-$DATE.bz2 . echo "done" echo "--------------------" echo "Sauvegarde du wiki" commande_tar_wiki="tar -cjvf bos-wiki-$DATE.tar.bz2 /home/bos/public_html/wiki" ssh bos@bos.seul.org "$commande_tar_wiki" scp bos@bos.seul.org:/home/bos/bos-wiki-$DATE.tar.bz2 . echo "done" echo "--------------------" echo "Sauvegarde de public_html/files" mkdir -p public_html rsync -azvP bos@bos.seul.org:/home/bos/public_html/files ./public_html tar -cjvf bos-files-$DATE.tar.bz2 public_html/files echo "done" echo "--------------------" echo "Sauvegarde de public_html/dev" mkdir -p public_html rsync -azvP bos@bos.seul.org:/home/bos/public_html/dev ./public_html tar -cjvf bos-dev-$DATE.tar.bz2 public_html/dev echo "done" echo "--------------------" echo "Sauvegarde du svn Stratagus sur SF" mkdir -p stratagus commande_tar_stratagus="tar -cjvf stratagus-svn-$DATE.tar.bz2 stratagus/" # Rsync requests must be proxied, per SF configuration needs export RSYNC_PROXY=rsync-svn.sourceforge.net:80 rsync -a rsync-svn-s::svn/stratagus/* stratagus/ tar -cjvf stratagus-svn-$DATE.tar.bz2 stratagus/ echo "done" echo "Sauvegarde terminée." exit 0 ===== Sauvegarde d'une config mailman + archives ===== #!/bin/sh # sauvegarde des abonnements, des confs et des mbox des listes en aldil.org # Loïs - 20051218 -> 2000127 # Dup - 20060112 DATE=$(date +%Y%m%d) LISTES="journees membres aldil code linuxchixfrance publique annonces debats zope-lyon" MM_DIR="/var/lib/mailman/archives/private" BK_DIR="/home/maintenance/sauvegardes" #mkdir -p $BK_DIR/ echo "" echo "$DATE" for i in $LISTES; do mkdir -p $BK_DIR/$DATE/$i echo "sauvegarde de $i" # sauvegarde des abonnements pour $i /usr/sbin/list_members -o $BK_DIR/$DATE/$i/abo.lst $i /usr/sbin/list_members -i -o $BK_DIR/$DATE/$i/abo-invalid.lst $i # sauvegarde de la conf de $i /usr/sbin/config_list -o $BK_DIR/$DATE/$i/config $i # sauvegarde de la mbox de $i if [[ -e $MM_DIR/$i.mbox/$i.mbox ]] then cp $MM_DIR/$i.mbox/$i.mbox $BK_DIR/$DATE/$i/$i.mbox bzip2 $BK_DIR/$DATE/$i/$i.mbox # FIXME pourrait être remplacé par : # cat $MM_DIR/$i.mbox/$i.mbox | bzip2 -c > $BK_DIR/$DATE/$i/$i.mbox.bz2 else echo "pas d'archives pour $i" fi # attribution des droits sur la sauvegarde /bin/chown -R maintenance:maintenance $BK_DIR/* /bin/chmod -R u=rwX,go=rX $BK_DIR/* echo "$i ok" echo "" done exit