Différences
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
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