Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

scripts:exemples:backups [2007/01/27 16:10]
lois grmbl typo gros doigts
scripts:exemples:backups [2007/01/27 21:42] (Version actuelle)
lois mise à jour (code cracra - 1)
Ligne 1: Ligne 1:
 +======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.
 +
 +<code bash>
 +#!/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="<​deleted>"​
 +PASSWD="<​deleted>"​
 +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
 +</​code>​
 +
 +===== 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 !).
 +
 +<code bash>
 +#!/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
 +</​code>​
 +
 +
 +===== Sauvegarde d'une config mailman + archives =====
 +
 +<code bash>
 +#!/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
 +</​code>​
  
 
scripts/exemples/backups.txt · Dernière modification: 2007/01/27 21:42 par lois