Ceci est une ancienne révision du document !
Sauvegardes
Des sauvegardes sont effectuées manuellement avec le service de backups de Yunohost yunohost backup create
. Les fichiers résultants, situés dans /home/yunohost.backup/archives, sont ensuite copiés manuellement sur d'autres disques : Freebox maison, NAS distant Hervé.
Parallèlement, une copie complète du système Raspbian est sauvegardée avec rsync
tous les jours à 02:40 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.
De plus, la restauration de Nextcloud est lourde en raison d'une BDD jointe aux fichiers. La procédure est décrite ici : https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html . Il faut intégrer la commande sudo mysqldump –single-transaction -p nextcloud > nextcloud-sqlbkp_`date +“%Y%m%d”`.bak
avec le mot de passe situé dans /etc/yunohost/mysql
au script de sauvegarde.
D'une manière générale, les bases de données doivent être sauvegardées en plus des fichiers, cf le post : https://forum.yunohost.org/t/how-to-recover-from-corrupted-mysql/4351
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 ( fonctionnement partiel au 18/12/2017).
Automatisation RSync
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-send-id
, pour le compte “admin@NASHervé”
Puis la sauvegarde se fait en synchronisation à distance avec la commande rsync
. Pour pouvoir lire l'ensemble des fichiers à sauvegarder, la commande sera lancée par root. Par conséquent, il faut copier les clés de l'utilisateur 'pi' vers le dossier /root/.ssh pour bénéficier de la connexion sans mot de passe. La commande finale est alors :
rsync -azPvH –exclude-from=/usr/local/src/RsyncExclusions.txt –delete-during –bwlimit=2.1m / admin@NASHervé:/share/homes/Elias/Rsync » /var/log/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.
Cette commande combine le meilleur des liens suivants :
La Freebox ADSL est limitée en upload, d'où le –bwlimit. L'historique des transferts est loggué dans un fichier dédié, avec un timestamp par la commande date » /var/log/rsync.log
( à vider régulièrement). Enfin, on automatise l'ensemble du script en l'appelant via le daemon CRON du root : sudo crontab -e
avec 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.
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 bouger, 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.
Liens utiles à consulter pour compléter :