Le Wiki de Tchack

Guides et documentation sur le serveur tchack.xyz

Outils pour utilisateurs

Outils du site


adminsys:sauvegardes

Ceci est une ancienne révision du document !


Sauvegardes

Des sauvegardes peuvent être effectuées manuellement avec le service de backups de Yunohost yunohost backup create. qui crée un fichier daté dans /home/yunohost.backup/archives.

Parallèlement, une copie complète du système Raspbian est sauvegardée avec rsync quotidiennement par le cron root, via un script dédié.

:!: Les éléments du système hors Yunohost, tels l'appli RPi-Monitor, les clés SSH, les comptes utilisateurs du serveur, les journaux d'installation… ne sont pas sauvegardés par le service de Yunohost. Ils sont donc compliqués à restaurer dans le plan de reprise d'activité actuel.

NB: La procédure a été copiée avec succès lors du déploiement du VPS.

Base de données

La restauration de Nextcloud est lourde en raison d'une BDD jointe aux fichiers. La procédure est décrite dans la documentation Nextcloud. Et d'une manière générale pour Yunohost, les bases de données doivent être sauvegardées en plus des fichiers, cf ce post.

On réalise donc, avant la sauvegarde quotidienne, une copie de l'ensemble des tables de la base de données, en utilisant la commande mysqldump et l'authentification selon ce lien. Le mot de passe maître de MySQL est copié depuis /etc/yunohost/mysql.

Automatisation cron/RSync

:!: L'automatisation est un point clé de la survie et de la qualité du serveur : le P.R.A. doit être testé régulièrement ( FIXME fonctionnement partiel au 18/12/2017).

L'automatisation des sauvegardes vers le NAS de Hervé est en place selon le protocole suivant. Il faut tout d'abord pouvoir s'y connecter sans mot de passe : pour cela on met en place de clés SSH sans phrase de passe (dans le dossier /home/pi/.ssh) dont la clé publique est envoyée au NAS avec ssh-copy-id, pour le compte “admin@NASHervé”. Pour pouvoir lire l'ensemble des fichiers à sauvegarder, la commande sera lancée par root. Par conséquent, il faut copier les clés SSH de l'utilisateur 'pi' vers le dossier /root/.ssh pour se connecter au NAS sans mot de passe.

Puis la sauvegarde se fait en push avec la commande rsync.

rsync -azPvH –exclude-from=/usr/local/src/RsyncExclusions.txt –delete-during –bwlimit=2.1m / admin@NASHervé:/share/homes/Elias/Rsync » /var/log/rsyncSaveHerve/rsync.log

Options : -a pour archiver, -z pour compresser, -P pour avoir des barres de chargement et les transferts partiels, -v pour être verbeux, -H pour préserver les liens durs, –bwlimit pour limiter l'upload et ne pas saturer la connexion ADSL. RsyncExclusion.txt liste les dossiers inutiles à sauvegarder, tels /tmp* ou /proc*.

L'historique des transferts est loggué dans un fichier dédié, avec un timestamp initial et final par la commande date » /var/log/rsyncSaveHerve/rsync.log. L'historique du fichier de log est géré par le service UNIX logrotate. Enfin, on automatise l'ensemble du script en l'appelant via le daemon CRON du root : sudo crontab -e et on ajoute la ligne suivante 30 3 * * * /usr/local/src/Rsync-SaveYH.sh.

Le contenu du script Rsync-SaveYH.sh est récupérable sur cette page.

8-) Pour plus de confort, un SMS est envoyé à l'administrateur en fin de sauvegarde, avec le temps d'opération, via l'API du service SMS-FreeMobile.

:!: L'adresse IPv4 du NASHervé peut changer, mais son URL fixe est fournie par le service Qnap. Ce service peut limiter le débit des transferts de longue durée. Une vigilance est à mener sur ce point, avec l'utilisation éventuelle du service https://api.ident.me et d'un script coté NAS.

Documentation

adminsys/sauvegardes.1534840490.txt.gz · Dernière modification : 2018/08/21 10:34 de jaxom