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évision
Révision précédente
adminsys:sauvegardes [2019/02/08 11:57] – ajout automatisation yunohost jaxomadminsys:sauvegardes [2022/11/05 23:20] (Version actuelle) – retrait Raspberry Pi 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''.+Tchack dispose de deux sauvegardes distantes hebdomadaires, faites sur un NAS et un VPS ( voir page [[adminsys:serveur|architecture]]).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é]].+Des sauvegardes peuvent aussi ê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''
  
-Enfinun [[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 Yunohosttels 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]].//
  
-:!: 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.+NBPour des raisons de performance, les serveurs ne sont pas chiffrés, et seules les sauvegardes Borg le sont.
  
-:!: Pour des raisons de performance, les sauvegardes tout comme les serveurs ne sont pas chiffrées.+:!: 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).
  
-//NB: La procédure "distante" a été copiée avec succès lors du déploiement du [[adminsys:vps|VPS]].// 
  
  
  
  
-:!: 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).+===== Utilisation de Borg Backup ===== 
 +En 2021, passage à l'application [[adminsys:borgbackup|Borg]] (serveur et client packagés pour Yunohost). Le Serveur et le VPS envoient vers le BackupVPS.
  
-===== Automatisation Locale ===== +Le BackupVPS partage son espace disque (250GBainsi : 
-Un [[adminsys:script-save-auto-local|premier script]] est appelé chaque dimanche par cron, il 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).+   * 200 GB : Serveur 
 +   * 30  GB : VPS 
 +   * 20  GB : VPS Hereli
  
-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. 
  
- +===== Automatisation NAS =====
- +
-===== Automatisation distante =====+
 L'automatisation des sauvegardes distantes vers le NAS de Hervé est en place selon le protocole suivant : L'automatisation des sauvegardes distantes 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 place une clé 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é”.    * Il faut tout d'abord pouvoir s'y connecter sans mot de passe : pour cela on place une clé 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 sur le système, le script de sauvegarde 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.   * Pour pouvoir lire l'ensemble des fichiers à sauvegarder sur le système, le script de sauvegarde 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.
 +
  
 ==== Base de données ==== ==== Base de données ====
Ligne 35: Ligne 35:
 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 ==== 
  
  
-Puis la sauvegarde brute se fait en push avec la commande ''rsync'' 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''+==== 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''.
  
-//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*''.//+8-) Pour plus de confortun SMS est envoyé à l'administrateur en fin de sauvegardeavec le temps d'opérationvia 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 pour utiliser l'IP directement.
  
-==== Monitoring ====+==== BackupFTP chez OVH ==== 
 +L'accès FTP est bridé, marche bien avec le client ''ncftp''
 +https://www.lije-creative.com/backup-ftp-serveur-dedie-ovh/
  
-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''.+===== Documentation ===== 
 +====== Obsolète : Automatisation locale ====== 
 +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, plus une pour Nextcloud (qui nécessite un réglage distinct, pour sauvegarder les réglages sans la data, trop lourde).
  
-Le contenu du script ''Rsync-SaveYH.sh'' est récupérable sur [[adminsys:scriptSauvegarde|cette page]].+Les archives sont préfixées "auto-", et automatiquement supprimées au fur et à mesure. Le script conserve une copie à J-7 et à J-30Le repository //borg// garde une copie par mois, sans limite de temps, avec la commande ''[[https://borgbackup.readthedocs.io/en/stable/usage/prune.html|prune]]'' (décompte des sauvegardes seulement si fichier présent !)
  
-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.+Puis le script enchaine avec la copie du repo vers le NAS, via ''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 : 
  
-:!: L'adresse IPv4 du NASHervé peut changer, mais son URL fixe est fournie par le service QnapCe service peut limiter le débit des transferts de longue duréeUne vigilance est à mener sur ce point, avec l'utilisation éventuelle du service https://api.ident.me et d'un script coté NAS pour utiliser l'IP directement.+''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''
  
-===== Documentation =====+//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.//
  
-Le script ''rsync'' combine le meilleur des liens suivants :+  * 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. 
 + 
 +===== Sources ===== 
 + 
 +Ine copie complète du système du Raspberry Pi était sauvegardée à distance avec ''rsync'' quotidiennement, via un [[adminsys:scriptsauvegarde|script dédié]].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 76:
    * 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]]. 
 + 
 +NB: Pour éviter de sauvegarder par yunohost certains répertoires de '/home', il faut leur ajouter un fichier '.nobackup' à la racine (trouvé d'après [[https://forum.yunohost.org/t/probleme-de-backup-pour-home-data/5802|ce thread]]).
  
 Ces liens pourront être utilisés pour compléter la procédure : Ces liens pourront être utilisés pour compléter la procédure :
Ligne 74: Ligne 86:
     * https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html     * https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html
     * http://sebsauvage.net/wiki/doku.php?id=disque_externe     * http://sebsauvage.net/wiki/doku.php?id=disque_externe
 +    * https://blog.genma.fr/?Sauvegarde-la-regle-des-3-2-1
  
adminsys/sauvegardes.1549623423.txt.gz · Dernière modification : 2019/02/08 11:57 de jaxom