Logo : un manchot sur fond d'étoile rouge
Alexandre Norman
de choses et d’autres
  • Blog
  • Projets
  • CV
Projets Python
  • python-gantt
  • python-nmap
  • pyClamd
Catégories
  • Asterisk
  • django
  • Outils
  • Poules
  • Raspberry Pi
  • Archives
Tags
  • asterisk (1)
  • bash (2)
  • Bricolage (1)
  • debian (6)
  • django (2)
  • dovecot (1)
  • GPS (1)
  • LDAP (1)
  • lighttpd (1)
  • méthode (3)
  • mpd (1)
  • Nagios (1)
  • openvpn (1)
  • OSM (3)
  • outils (6)
  • Palettes (1)
  • postfix (1)
  • postgrey (1)
  • Poules (1)
  • Python (6)
  • Raspberry Pi (6)
  • raspbian (6)
  • selenium (1)
  • shellscript (2)
  • voip (1)
  • wazo (1)
  • wifi (1)

Script de sauvegarde avec versionning

Publication : 2015.11.06
Catégorie : Outils

Tags: outils bash shellscript

Ce script permet de réaliser des sauvegardes incrémentales d’un système de fichiers Unix local ou distant. Les fichiers sont identiques d’une sauvegarde à l’autre ne sont pas dupliqués. Ils sont liées entre eux par leur inodes minimisant ainsi l’espace disque nécessaire.

Il permet également de sauvegarder des bases de données MySQL.

Il s’appuie sur rsync pour la copie des fichiers et sur ssh pour réaliser la sauvegarde des bases de données.

Téléchargement

Les fichiers suivants sont nécessaires :

  • Makefile_4_Backup : fichier GNU/Makefile
  • configuration.txt : fichier de configuration

Configuration

La configuration est contenue dans le fichier configuration.txt qui défini les variables suivantes :

  • REMOTE_HOST : si vous souhaitez faire une sauvegarde sur un site distant, préciser l’adresse sous la forme login@host, sinon pour faire une sauvegarde locale, mettez localhost,
  • WHAT_TO_SAVE : la liste des répertoires ou des fichiers à sauvegarder, séparés par des espaces,
  • DESTINATION : le répertoire où seront copiés les fichiers,
  • EXCLUSION : un fichier contenant une liste de fichiers à exclures,
  • DATABASE_OPTIONS : les options nécessaires pour sauvegarder vos bases MySQL (à minima, probablement -u login -p password) ou NONE si vous ne souhaitez pas de sauvegarde.

Attention au format, il ne doit pas y avoir d’espaces entre le nom de variable, sa valeur et le signe =. Voici un exemple de fichier de configuration :

REMOTE_HOST=root@xael.org
WHAT_TO_SAVE=/usr/local/ /etc/ /zBackups/ /home/
DESTINATION=/BigDisk/Backups/xael.org/vps
EXCLUSION=/BigDisk/Backups/xael.org/vps/exclusions.txt
DATABASE_OPTIONS=NONE

Utilisation

Pour utiliser le script, il suffit de lancer la commande suivante :

make -f Makefile_4_Backup backup

Le script va alors créer un répertoire backup nommé selon la date et l’heure de lancement (exemple : backup_20151106-224537). Une fois la sauvegarde terminée, il va également créer un lien symbolique current vers la dernière sauvegarde utilisée.

drwxr-xr-x 6 root root 4096 nov.   6 22:46 backup_20151106-224537
lrwxrwxrwx 1 root root   52 nov.   6 22:47 current -> /BigDisk/Backups/xael.org/vps/backup_20151106-224537


Autres articles


Scripts utiles pour l’administration système Unix

Quelques scripts unix utiles pour copier une arborescence par FTP, récupérer les droit d’un fichier, renommer des répertoires et fichiers dont les noms contiennent des espaces et un comparateur de fichiers et droits entre deux systèmes.

Publication : 2015.10.01
Catégorie : Outils

Tags: outils bash shellscript

lire...
Site géré avec Pelican - thème personnel
font dyslexia Increase text size Decrease text size Flux RSS Twitter