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 [2018/09/28 12:58] – ajout lien sebsauvage 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 avec le service de backups de Yunohost ''yunohost backup create''. qui crée un fichier daté dans ''/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 Raspbian est sauvegardée avec ''rsync'' quotidiennement par le ''cron'' root, 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''
  
-:!: 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 [[adminsys:pra|plan de reprise d'activité]] actuel.+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]].//
  
-//NB: La procédure a été copiée avec succès lors du déploiement du [[adminsys:vps|VPS]].//+NB: Pour des raisons de performance, les serveurs ne sont pas chiffrés, et seules les sauvegardes Borg le sont.
  
-===== Base de donné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).
  
-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''. 
  
  
  
-===== Automatisation cron/RSync ===== +===== Utilisation de Borg Backup ===== 
-:!: 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).+En 2021, passage à l'application [[adminsys:borgbackup|Borg]] (serveur et client packagés pour Yunohost). Le Serveur et le VPS envoient vers le BackupVPS.
  
-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.+Le BackupVPS partage son espace disque (250GBainsi : 
 +   * 200 GB : Serveur 
 +   * 30  GB : VPS 
 +   * 20  GB : VPS Hereli
  
-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''+===== Automatisation NAS ===== 
 +L'automatisation des sauvegardes distantes vers le NAS de Hervé est en place selon le protocole suivant :
  
-//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*''.//+  * 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équentil faut copier les clés SSH de l'utilisateur 'pivers le dossier /root/.ssh pour se connecter au NAS sans mot de passe. 
 + 
 + 
 +==== 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 [[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 fichierscf [[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éesen 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''.
  
  
  
-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]].+==== 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''.
  
 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.
  
-:!: 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.+:!: 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. 
 + 
 +==== 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/
  
 ===== Documentation ===== ===== 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 script combine le meilleur des liens suivants :+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, avec la commande ''[[https://borgbackup.readthedocs.io/en/stable/usage/prune.html|prune]]'' (décompte des sauvegardes seulement si fichier présent !) 
 + 
 +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 :  
 + 
 +''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.// 
 + 
 +  * 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 46: Ligne 75:
    * https://www.howtogeek.com/50794/keep-rsync-from-using-all-your-bandwidth/    * https://www.howtogeek.com/50794/keep-rsync-from-using-all-your-bandwidth/
    * 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 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 53: 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.1538132339.txt.gz · Dernière modification : 2018/09/28 12:58 de jaxom