#!/bin/sh ## Sauvegarde des fichiers de conf et du site web CRANS sur pegase ## Sayan 02/10/2003 ## Ajout de la synchro du site web : Sayan 04/10/2003 ## Ajout de la synchro des mails : Sayan 19/10/2003 ## Ajout de la synchro des news et des homes : Sayan 15/11/2003 ## Ajout de la synchro du wiki et de jabber : Manathan 01/05/2004 ## Ajout de la synchro de mailman : Manathan 02/05/2004 ## Passage en modulo 4 semaine pour les sauv par rsync : Manathan 05/05/2004 ## Nettoyage : Manathan 06/05/2004 ## Que sauvegarder ? confs="etc usr/cvs-rep CRANS usr/scripts boot/config*" # via bzip2 site_web="/home/httpd/CVS-Repository" # via rsync mails="/var/spool/mail" news="/var/spool/news" wiki="/var/local/lib/wiki" jabber="/var/lib/jabber" mailman="/var/lib/mailman/archives" homes="/home" ## Sauvegarde des confs: tar gz ($confs + dpkg_selections) cd / temp_dir=$(mktemp -d) nom_archive=$temp_dir"/backup_"$(hostname)"_"$(date --iso-8601)".tar.bz2" nom_selections=$temp_dir"/selections" dpkg --get-selections > $nom_selections || exit 1 tar -cjf $nom_archive $confs .$nom_selections || exit 2 scp $nom_archive backupcrans@pegase: || exit 3 rm -rf $temp_dir # rsync over ssh pour le site web, les homes, les mails et les news # archive, compress, sparse, hard links, CVS exclude, remote shell # archive is rlptgoD : recursive, symlinks, perms, times, group, owner, Devices # suppr les fichiers non existant sur zamok # synchro journalière, switch par semaine sur 4 rep week=$(date +%W) # numéro de la semaine week_mod4=$(( $week % 4 )) ## Sauvegarde du Site web et des News, wiki, jabber, mailman ## la man page donne: -a, equivalent to -rlptgoD donc on vire le t ## on vire le z car la compression met zamok a cheval rsync -aSH --delete $site_web backupcrans@pegase:~/backup-$week_mod4/httpd || exit 4 rsync -aSHe ssh --delete $news backupcrans@pegase:~/backup-$week_mod4/var/spool || exit 5 rsync -aSHe ssh --delete $wiki backupcrans@pegase:~/backup-$week_mod4/wiki || exit 6 rsync -aSHe ssh --delete $jabber backupcrans@pegase:~/backup-$week_mod4/jabber || exit 7 rsync -aSHe ssh --delete $mailman backupcrans@pegase:~/backup-$week_mod4/mailman || exit 8 ## Sauvegarde des mails # rsync change le atime quand il lit le fichier, on perd la date de dernière consultation des mails pour le ménage des comptes mount /var/spool/mail -o remount,noatime rsync -aSHe ssh --delete $mails backupcrans@pegase:~/backup-$week_mod4/var/spool || exit 9 mount /var/spool/mail -o remount,atime ## Sauvegarde des homes # Les homes sont donnés à backupcrans.backup # "Permission denied" errors occur because backupcrans is not root on pegase. Ignoring temp=$(mktemp) temp_mail=$(mktemp) rsync -aSH --delete $homes backupcrans@pegase:~/backup-$week_mod4 &> $temp cat $temp | grep -viEe "^((recv_generator)|(opendir)|(stat)).*Permission denied$" | grep -vie "^skipping non-regular file" | grep -vie "^rsync error: some files could not be transferred" | grep -vie "^file has vanished" > $temp_mail if [ -s $temp_mail ] then cat $temp_mail | mail -s "rsync error" roots fi rm $temp rm $temp_mail