Le Wiki de Tchack

Guides et documentation sur le serveur tchack.xyz

Outils pour utilisateurs

Outils du site


adminsys:sauvegardes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révisionLes deux révisions suivantes
adminsys:sauvegardes [2019/02/08 11:57] – ajout automatisation yunohost jaxomadminsys:sauvegardes [2019/02/25 16:30] – mise en place borg jaxom
Ligne 1: Ligne 1:
 ====== Sauvegardes ====== ====== Sauvegardes ======
  
-Des sauvegardes peuvent être effectuées manuellement ou automatiquement avec l'outil de backups de Yunohost ''yunohost backup create''. Celui-ci crée une archive datée dans le répertoire ''/home/yunohost.backup/archives''. +Des sauvegardes peuvent être effectuées manuellement ou automatiquement avec l'outil de backups de Yunohost ''yunohost backup create''. Celui-ci crée une archive datée dans le répertoire ''/home/yunohost.backup/archives''. Parallèlement, une copie complète du système du Raspberry Pi est sauvegardée à distance avec ''rsync'' quotidiennement, via un [[adminsys:scriptsauvegarde|script dédié]]. Enfin, une automatisation hebdomadaire [[borgbackup|avec Borg]] est en place.
- +
-Parallèlement, une copie complète du système est sauvegardée à distance avec ''rsync'' quotidiennement, via un [[adminsys:scriptsauvegarde|script dédié]]. +
- +
-Enfin, un [[borgbackup|backup avec Borg]] est en cours de mise en place, pour faire une copie VPS -> Rpi et Rpi -> NAS. +
- +
-:!: 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 plus compliqués à restaurer dans le [[adminsys:pra|plan de reprise d'activité]] actuel. +
- +
-:!: Pour des raisons de performance, les sauvegardes tout comme les serveurs ne sont pas chiffrées. +
- +
-//NB: La procédure "distante" a été copiée avec succès lors du déploiement du [[adminsys:vps|VPS]].// +
  
 +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 plus compliqués à restaurer dans le [[adminsys:pra|plan de reprise d'activité]] actuel. //NB: La procédure "distante" a été dupliquée avec succès lors du déploiement du [[adminsys:vps|VPS]].//
  
 +:!: Pour des raisons de performance, les serveurs ne sont pas chiffrés, et seules les sauvegardes Borg le sont.
  
 :!: L'automatisation est un point clé de la survie et de la qualité du serveur : le [[adminsys:pra|P.R.A.]] doit être testé régulièrement ( FIXME fonctionnement partiel au 18/12/2017). :!: L'automatisation est un point clé de la survie et de la qualité du serveur : le [[adminsys:pra|P.R.A.]] doit être testé régulièrement ( FIXME fonctionnement partiel au 18/12/2017).
  
-===== Automatisation Locale ===== +===== Automatisation locale ===== 
-Un [[adminsys:script-save-auto-local|premier script]] est appelé chaque dimanche par cronil crée une archive de sauvegarde avec l'outil de yunohost. Les réglages et les applications sont ainsi sauvegardées dans deux archives distinctes, à l'exception de Nextcloud (qui serait trop lourd avec les data)+Un [[adminsys:script-save-auto-borg-rpi|script]] est appelé chaque dimanche par //cron// : il crée une archive de sauvegarde avec l'outil de yunohost et la recopie dans un repository chiffré par //borg//. Les réglages et les applications sont ainsi sauvegardées dans deux archives distinctes, à l'exception de Nextcloud (qui serait trop lourd avec les data).
- +
-Les archives sont préfixées "auto-", et automatiquement supprimées au fur et à mesure. Le script conserve 1 copie à J-7 et à J-30.+
  
 +Les archives sont préfixées "auto-", et automatiquement supprimées au fur et à mesure. Le script conserve une copie à J-7 et à J-30. Le repository //borg// garde une copie par mois, sans limite de temps.
  
 +Puis le script enchaine avec la copie du repo vers le NAS, via ''rsync''.
  
 ===== Automatisation distante ===== ===== Automatisation distante =====
Ligne 35: Ligne 26:
 La restauration de Nextcloud est lourde en raison d'une BDD jointe aux fichiers. La procédure est décrite dans [[https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html| 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 [[https://forum.yunohost.org/t/how-to-recover-from-corrupted-mysql/4351| ce post]]. La restauration de Nextcloud est lourde en raison d'une BDD jointe aux fichiers. La procédure est décrite dans [[https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html| 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 [[https://forum.yunohost.org/t/how-to-recover-from-corrupted-mysql/4351| 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 [[https://stackoverflow.com/questions/9293042/how-to-perform-a-mysqldump-without-a-password-prompt/32409448|ce lien]]. Le mot de passe maître de MySQL est copié depuis ''/etc/yunohost/mysql''.+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 [[https://stackoverflow.com/questions/9293042/how-to-perform-a-mysqldump-without-a-password-prompt/32409448|ce post]]. Le mot de passe maître de MySQL est copié depuis ''/etc/yunohost/mysql''.
  
-==== Rsync ====+==== Rsync quotidien ==== 
 +Pour le RPi uniquement (qui contient des services critiques), une sauvegarde brute et non-chiffrée est faite quotidiennement en push, avec la commande suivante : 
  
 +''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''
  
-Puis la sauvegarde brute se fait en push avec la commande ''rsync'' suivante : +//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.//
  
-''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'' +  * Le fichier ''RsyncExclusion.txt'' liste les dossiers inutiles à sauvegarder, tels ''/tmp*'' ou ''/proc*'' ainsi que les repository //borg//, déjà copiés au rythme hebdomadaire.
- +
-//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. Le fichier ''RsyncExclusion.txt'' liste les dossiers inutiles à sauvegarder, tels ''/tmp*'' ou ''/proc*''.//+
  
  
 ==== Monitoring ==== ==== Monitoring ====
  
-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''+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 [[adminsys:scriptSauvegarde|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. 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.
Ligne 59: Ligne 48:
 ===== Documentation ===== ===== Documentation =====
  
-Le script ''rsync'' combine le meilleur des liens suivants :+Le script ''Rsync-SaveYH.sh'' quotidien est récupérable sur [[adminsys:scriptSauvegarde|cette page]]. Il combine le meilleur des liens suivants :
  
    * https://raspberrypi.stackexchange.com/questions/5427/can-a-raspberry-pi-be-used-to-create-a-backup-of-itself/28087#28087    * https://raspberrypi.stackexchange.com/questions/5427/can-a-raspberry-pi-be-used-to-create-a-backup-of-itself/28087#28087
Ligne 66: Ligne 55:
    * https://easydomoticz.com/nouveau-service-sms-pour-les-utilisateurs-de-free-mobile/    * https://easydomoticz.com/nouveau-service-sms-pour-les-utilisateurs-de-free-mobile/
  
-Le script ''auto-'' est inspiré de [[https://forum.yunohost.org/t/sauvegardes-automatiques-a-j-1-j-7-et-j-30/6495| cette discussion sur le forum]].+Le script hebdomadaire ''auto-'' est récupérable sur [[adminsys:script-save-auto-borg-rpi|cette page]], il s'inspire de [[https://forum.yunohost.org/t/sauvegardes-automatiques-a-j-1-j-7-et-j-30/6495| cette discussion sur le forum]]. Le passage à borg est documenté sur [[adminsys:borgbackup|cette page]].
  
 Ces liens pourront être utilisés pour compléter la procédure : Ces liens pourront être utilisés pour compléter la procédure :
adminsys/sauvegardes.txt · Dernière modification : 2022/11/05 23:20 de jaxom