serveur dédié - partie 5 - sauvegarde

Malheureusement je n’ai pas de serveur de sauvegarde. La sauvegarde se fera donc en locale. Puis serat transférée régulièrement vers un DD externe via rsync

RDIIF-BACKUP

rdiff-backup permet de faire des sauvegardes incrémentales via la librsync. Et peut être utilisé en mode client/serveur, à travers un réseau via ssh.
J’ai déjà eut quelques soucis avec cet outil, notamment les différences de versions entre client et serveur. Mais dans le cas d’une sauvegarde locale, ça ne devrait pas poser de problème.
Sur une appli fortement chargée, un snapshot LVM pourrait être utilisé le temps de la sauvegarde.

L’utilisation est assez simple. Il faut juste faire attention à l’ordre des inclusions/exclusions

1
2
3
rdiff-backup  --print-statistics --terminal-verbosity 2 \
--include-globbing-filelist /exploit/etc/include-list \
--exclude / / /backup/data/ 2>&1

MySQL

Création d’un user backup

Je ne veux pas faire les sauvegardes avec le compte root mysql. On va donc créer un utilisateur et lui donner les droits nécessaires:

1
2
3
$ mysql -u root -p 
mysql> CREATE USER 'dump'@'localhost' IDENTIFIED BY 'PASSWORD';
mysql> GRANT SELECT , RELOAD, SHOW DATABASES , LOCK TABLES , SHOW VIEW ON * . * TO 'dump'@'localhost' IDENTIFIED BY 'PASSWORD';

Le reste du script est assez simple:

  • on récupére la liste des bases avec un
    1
    mysql -u $USER -p$PWD -Bse 'show databases'
  • Puis pour chaque bases on fait un
    1
    mysqldump -u $USER -p$PWD --quick --add-locks --lock-tables --extended-insert $database 2>>$LOG|gzip  > $bckp_dir/${database}.sql.gz