Browse Source

first commit

SiM 5 years ago
commit
7613cae39d
3 changed files with 68 additions and 0 deletions
  1. 22 0
      README.md
  2. 29 0
      backup.sh
  3. 17 0
      cleanup.sh

+ 22 - 0
README.md

@@ -0,0 +1,22 @@
+#Scripts de sauvegarde
+
+## Description
+Ces scripts sont utilisésur des VM debian contenant des applis web
+
+* *backup.sh* permet de sauvegarder bases de donnÃes MYSQL ainsi que le contenu d'un rÃpertoire
+* *cleanup.sh* efface les sauvegardes de plus de 10 jours.
+
+## Déploiement
+1. Placez vous dans le rÃpertoire de votre choix (`/root/scripts` par exemple)
+`git clone https://agora.tera.coop/gogs/tera.coop/backup-scritps.git`
+
+2. *Attention de bien renseigner les paramètres dans chaque script et de s'assurer de créer les réperresi contenant les sauvegardes !*
+
+3. Rendre les scripts exÃcutables :
+`chmod 700 backup.sh cleanup.sh`
+
+## ExÃcuter les scripts automatiquement avec la crontab
+```
+ln -s backup.sh /etc/cron.daily/01-backup
+ln -s cleanup.sh /etc/cron.daily/02-cleanup
+```

+ 29 - 0
backup.sh

@@ -0,0 +1,29 @@
+#!/bin/sh
+
+##############################################################
+#                                                            #
+# Sauvegarde les fichiers d'un repertoire et les bases Mysql #
+#                                                            #
+##############################################################
+
+# Parametrage 
+WWW_BACKUP_DIRECTORY=/home/backup/www
+MYSQL_BACKUP_DIRECTORY=/home/backup/mysql
+LOG_FILE=/tmp/backup.log
+WWW_DIRECTORY=/var/www
+
+# Sauvegarde des fichiers
+echo "[$(date +%d/%m/%Y-%H:%M)] Sauvegarde des fichiers" >> $LOG_FILE
+mkdir $WWW_BACKUP_DIRECTORY/$(date "+%Y%m%d")
+cp -R $WWW_DIRECTORY/* $WWW_BACKUP_DIRECTORY/$(date "+%Y%m%d") >> $LOG_FILE
+
+# Sauvegarde des bases de donnees MYSQL (on exclue information_schema et performance_schema)
+echo "[$(date +%d/%m/%Y-%H:%M)] Sauvegarde des bases MYSQL" >> $LOG_FILE
+cd $MYSQL_BACKUP_DIRECTORY
+DBS="$(mysql --defaults-file=/etc/mysql/debian.cnf -Bse 'show databases;' | grep -Ev '(information_schema|performance_schema)')"
+for DB in $DBS
+do
+    echo " -> "$DB >> $LOG_FILE
+    mysqldump --defaults-file=/etc/mysql/debian.cnf $DB | gzip > $MYSQL_BACKUP_DIRECTORY/${DB}_$(date "+%Y%m%d-%H%M%S").sql.gz
+done
+

+ 17 - 0
cleanup.sh

@@ -0,0 +1,17 @@
+#!/bin/bash
+
+#########################################################
+#                                                       #
+# Supprime les sauvegardes vieilles de plus de 10 jours #
+#                                                       #
+#########################################################
+
+# Parametrage
+WWW_BACKUP_DIRECTORY=/home/backup/www
+MYSQL_BACKUP_DIRECTORY=/home/backup/mysql
+
+# Fichiers
+find $WWW_BACKUP_DIRECTORY -maxdepth 1 -mindepth 1 -mtime +9 -exec rm -rf {} \;
+
+# Dumps mysql
+find $MYSQL_BACKUP_DIRECTORY -type f -mtime +9 -delete