Commit 4f1c4a96 authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

[pg_backups.sh] Nettoyage et fiabilisation.

 1. Échappement de toutes les variables qui ne sont pas censées être
    étendues.
 2. Utilisation de fichiers temporaires et d'un mv pour rendre les
    backups atomiques.
 3. Vérification de si /pg_backups est un dossier en deux temps.
parent 0454517f
......@@ -4,23 +4,35 @@
# de backuper thot
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
destination='/pg_backups/'
mail='Roots <roots@crans.org>'
liste_backups='django_cas etherpad horde5 icinga limesurvey mediadrop owncloud re2o roundcube sqlgrey switchs '
destination="/pg_backups"
mail="Roots <roots@crans.org>"
liste_backups="django_cas etherpad horde5 icinga limesurvey mediadrop owncloud re2o roundcube sqlgrey switchs"
probs=0
if [ ! -d $destination ]; then
mkdir -p $destination
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}"
fi
for i in $liste_backups; do
if sudo -u postgres pg_dump $i | bzip2 -z > $destination/$i.sql.bz2; then
true;
else
retour="${retour}\nArchivage de la base $i échoué le $(date)...";
probs=1
fi;
done
if [ ! -d "${destination}" ]; then
retour="${destination} n'est pas un dossier, pas de backups possibles."
probs=1
else
gogogadgetobackups
fi
if [[ $probs -eq 1 ]]; then
(cat << EOF
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment