Commit initial: récupération et tri rapide
This commit is contained in:
commit
a52829f96c
104 changed files with 11892 additions and 0 deletions
111
sauvegarde_drupal.sh
Executable file
111
sauvegarde_drupal.sh
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/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 <<EOF
|
||||
$0 [-b base_dir] [ -B base_name] [-p prefixe] [-s suffixe] [-d duree_de_vie] repertoire_drupal
|
||||
$0 -h
|
||||
|
||||
-b base_dir : répertoire de sauvegarde (defaut: $BASE_DIR)
|
||||
-B base_name : nom de la sauvegarde. Par defaut, genere a partir du repertoire Drupal.
|
||||
-p prefixe : prefixe des fichiers de sauvegarde (defaut: $PREFIXE)
|
||||
-s suffixe : suffixe des fichiers de sauvegarde (default basé sur la date, ex: $SUFFIXE). A cela est ajouté .sql.gz et .tar.gz.
|
||||
-d duree_de_vie : age en nb de jours a partir duquel les anciennes archives sont supprimees. Si 0, pas de suppression. (defaut: $DUREE_DE_VIE)
|
||||
-t : génère également un .tar.gz de l'arborescence complète du Drupal
|
||||
repertoire_drupal : répertoire de l'instance drupal.
|
||||
EOF
|
||||
}
|
||||
|
||||
# Début du code
|
||||
# gestion des options de lancement
|
||||
while getopts b:B:d:p:s:th o; do
|
||||
case $o in
|
||||
'b')
|
||||
BASE_DIR="$OPTARG"
|
||||
;;
|
||||
|
||||
'B')
|
||||
BASE_NAME="$OPTARG"
|
||||
;;
|
||||
|
||||
'p')
|
||||
PREFIXE="$OPTARG"
|
||||
;;
|
||||
|
||||
's')
|
||||
SUFFIXE="$OPTARG"
|
||||
;;
|
||||
|
||||
'd')
|
||||
DUREE_DE_VIE="$OPTARG"
|
||||
;;
|
||||
|
||||
't')
|
||||
BACKUP_FICHIERS_ACTIF=1
|
||||
;;
|
||||
|
||||
'h')
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
|
||||
\?)
|
||||
usage >&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
|
Loading…
Add table
Add a link
Reference in a new issue