pg_backups.sh 1.2 KB
Newer Older
1
#!/bin/bash
2 3 4 5
# Author: Pierre-Elliott Bécue <becue@crans.org>
# Script qui est appelé par backuppc lorsqu'il tente
# de backuper thot

6
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
7 8 9
destination="/pg_backups"
mail="Roots <roots@crans.org>"
liste_backups="django_cas etherpad horde5 icinga limesurvey mediadrop owncloud re2o roundcube sqlgrey switchs"
10 11
probs=0

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
gogogadgetobackups (){
    # Expansion voulue ici.
    for dbname in ${liste_backups}; do
        file_dest="${destination}/${dbname}.sql.bz2"
        if sudo -u postgres pg_dump "${dbname}" | bzip2 -z > "${file_dest}.tmp"; then
            mv -f "${file_dest}.tmp" "${file_dest}"
        else
            rm -f "${file_dest}.tmp"
            retour="${retour}\nArchivage de la base ${dbname} échoué le $(date)...";
            probs=1
        fi;
    done
}

if [ ! -e "${destination}" ]; then
    mkdir -p "${destination}"
28 29
fi

30 31 32 33 34 35
if [ ! -d "${destination}" ]; then
    retour="${destination} n'est pas un dossier, pas de backups possibles."
    probs=1
else
    gogogadgetobackups
fi
36 37 38 39 40 41 42 43 44 45 46 47

if [[ $probs -eq 1 ]]; then
(cat << EOF
From: backuppc@crans.org
To: ${mail}
Subject: Backups postgresql foirés
Content-Type: text/plain; charset=UTF-8;

${retour}
EOF
) | sendmail -t
fi;