#!/bin/bash BACKUP_ROOT="/data/backups/phabricator" PHABRICATOR_ROOT="/opt/phabricator/phabricator" LOG_FILE="/var/log/phabricator_backup.log" # Redirection vers un fichier de log et affichage exec > >(tee -a "${LOG_FILE}") 2>&1 IFS=";" read date date_fr debut <<<$(LANG="fr_FR.UTF-8" date +'%F_%T;%a %d %b à %T;%s') echo "Début de la sauvegarde le ${date_fr}." if [ ! -d ${BACKUP_ROOT} ]; then echo "Dossier de sauvegarde inexistant" >&2 exit 1 fi if [ ! -w ${BACKUP_ROOT} ]; then echo "Droits insuffisants pour écrire dans le dossier de sauvegarde" >&2 exit 2 fi if [ ! -x ${PHABRICATOR_ROOT}/bin/storage ]; then echo "Impossible de trouver le script de backup de Phabricator" >&2 exit 3 fi echo "Nettoyage des vieux backups :" find ${BACKUP_ROOT} -type f -ctime +2 -exec echo " -" {} \; -exec rm -rf {} + echo -e "Création du nouveau backup" ${PHABRICATOR_ROOT}/bin/storage dump | xz >| "${BACKUP_ROOT}/phabricator_${date}.xz" fin=$(date +'%s') echo "Fin de la sauvegarde, temps total $((fin - debut))s."