#!/bin/sh # Configuration BASE_DIR="$HOME/backups" BASE_NAME="" #initialise plus tard PREFIXE="sauv_drupal_" SUFFIXE=_$( date +%Y%m%d-%H%M ) DUREE_DE_VIE=3 BACKUP_BDD_ACTIF=1 BACKUP_FICHIERS_ACTIF=0 # On essaie de diminuer la priorité de la chose # Aucune importance si les utilitaires ne sont pas dispos renice 15 -p $$ >/dev/null 2>&1 ionice -c 3 -p $$ >/dev/null 2>&1 # Arrêt à la moindre erreur non-catchée set -e # Fonctions # affiche le message d'aide usage() { cat <&2 exit 1 ;; esac done shift $( expr $OPTIND - 1 ) REPDRUPAL="$1" if [ -z "$BASE_NAME" ]; then BASE_NAME=$( printf "%s" $( basename "$REPDRUPAL" ) | tr -c "a-zA-Z" "-" ) fi if [ ! -d "$REPDRUPAL" ]; then echo "ERREUR: répertoire '$REPDRUPAL' inexistant." >&2 exit 1 fi if [ ! -d "$BASE_DIR" ]; then echo "ERREUR: repertoire de destination '$BASE_DIR' inexistant." >&2 exit 1 fi cd "$REPDRUPAL" if [ $( drush status 2>/dev/null | egrep -ci "Database[[:space:]]*:[[:space:]]*Connected" ) -ne 1 ]; then echo "ERREUR : Drush n'arrive pas à se connecter à la BDD." >&2 exit 1 fi if [ "$BACKUP_BDD_ACTIF" -gt 0 ]; then # Backup SQL drush sql-dump | gzip >"$BASE_DIR/$PREFIXE$BASE_NAME$SUFFIXE.sql.gz" fi if [ "$BACKUP_FICHIERS_ACTIF" -gt 0 ]; then # Backup fichiers tar -czf "$BASE_DIR/$PREFIXE$BASE_NAME$SUFFIXE.tar.gz" ./ fi # Suppression des vieux backups if [ "$DUREE_DE_VIE" -ne "0" ]; then test "$BACKUP_BDD_ACTIF" -gt 0 && find $BASE_DIR -name "$PREFIXE$BASE_NAME*.sql.gz*" -mtime "+$DUREE_DE_VIE" -delete test "$BACKUP_FICHIERS_ACTIF" -gt 0 && find $BASE_DIR -name "$PREFIXE$BASE_NAME*.tar.gz*" -mtime "+$DUREE_DE_VIE" -delete fi