Accéder au contenu.
Menu Sympa

fr - [sympa-fr] backup

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Bruno Jolys <adresse@cachée>
  • To: adresse@cachée
  • Subject: [sympa-fr] backup
  • Date: Mon, 28 Aug 2017 13:27:02 +0200

Bonjour,

J'ai fait un petit backup "maison" à faire tourner à la main ou, mieux, une fois par jour via le cron :

- il utilise la fonction dump de  sympa.pl
- les adresses mail et noms des abonnés sont récupérés et stockés dans un fichier texte par liste et par jour : /root/backup_membres/mon-domaine.org/membres_2017-08-28/ma-liste.txt
- ne sont conservées que les sauvegardes des 15 derniers jours

#!/bin/bash
# sauvegarde des membres des listes (manuelle ou via cron)

echo "Sauvegarde des membres des listes sur le serveur $(hostname), le $(date +%d-%m-%Y) vers $(date +%H:%M)"

# répertoire de sauvegarde
REP_BACKUP_MEMBRES="/root/backup_membres"
[ ! -d "$REP_BACKUP_MEMBRES" ] && mkdir "$REP_BACKUP_MEMBRES"

# nom de domaine
DOMAINE="mon-domaine.org"
REP_DOMAINE="$REP_BACKUP_MEMBRES/$DOMAINE"
[ ! -d "$REP_DOMAINE" ] && mkdir "$REP_DOMAINE"

# ne garder que les 15 dernières sauvegardes
for REP in $( find "$REP_DOMAINE" -iname 'membres_*' | sort --reverse | sed -n '16~1 p' )
do
    find "$REP" -delete
done

# répertoire de sauvegarde du jour
REP_SAUVEGARDE="$REP_DOMAINE/membres_$(date +%Y-%m-%d)"
[ ! -d "$REP_SAUVEGARDE" ] && mkdir "$REP_SAUVEGARDE"

# lancement préalable du dump par Sympa
echo ""
echo "Dump en cours..."
logger -i "backup: dump all lists /usr/lib/sympa/bin/sympa.pl --dump=ALL"
/usr/lib/sympa/bin/sympa.pl --dump=ALL

# boucle de récupération
echo ""
echo "Récupération en cours..."
logger -i "backup: copy subscribers to $REP_SAUVEGARDE"
for F in $( find "/home/sympa/list_data/$DOMAINE" -iname 'subscribers.db.dump' | sort )
do
    echo "--> $F";
    chown sympa:sympa "$F"
    LISTE=$( echo "$F" | sed "s/^.*$DOMAINE\///;s/\/subscribers.db.dump//" )
    sed '/^[ ]*$/ d;/^date / d;/^update_date / d;/^reception / d;/^visibility / d;s/^email //g' "$F" | sed ':debut;N;$
done

echo ""
echo "Sauvegarde terminée vers $(date +%H:%M)"

Je ne pense pas que ça surcharge le serveur, on verra.
Si jamais ça peut servir à quelqu'un...

Bien coopérativement
Bruno



  • [sympa-fr] backup, Bruno Jolys, 28/08/2017

Archives gérées par MHonArc 2.6.19+.

Haut de le page