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

Prochaine révision
Révision précédente
adminsys:sauvegardes [2017/10/24 00:40] – créée jaxomadminsys:sauvegardes [2022/11/05 23:20] (Version actuelle) – retrait Raspberry Pi jaxom
Ligne 1: Ligne 1:
 ====== Sauvegardes ====== ====== Sauvegardes ======
  
-Les sauvegardes sont effectuées manuellement avec le service de backups de Yunohost. Les fichiers résultantssitués dans /home/yunohost.backup/archives, sont ensuite copiés manuellement sur d'autres disques Freebox maison, NAS distant HervéLa configuration du système Raspbian n'est pas sauvegardée, étant facile à remonter rapidement “from scratch”.+Tchack dispose de deux sauvegardes distantes hebdomadairesfaites sur un NAS et un VPS ( voir page [[adminsys:serveur|architecture]]).Une automatisation hebdomadaire [[borgbackup|avec Borg]] est en place.
  
-:!: 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.+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''
  
-:!: L'automatisation reste à menerc'est un point clé de la survie du serveur. +Les éléments du système hors Yunohost, tels l'appli RPi-Monitorles 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]].//
-===== Automatisation RSync =====+
  
 +NB: Pour des raisons de performance, les serveurs ne sont pas chiffrés, et seules les sauvegardes Borg le sont.
  
-L'automatisation des sauvegardes vers le NAS de Hervé est en cours. 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é”+:!: 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).
  
-Puis la sauvegarde se fera en synchronisation à distance avec la commande rsync. Pour pouvoir lire l'ensemble des fichiers à sauvegarder, la commande doit être 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 :+ 
 +===== 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. 
 + 
 +Le BackupVPS partage son espace disque (250GB) ainsi : 
 +   * 200 GB : Serveur 
 +   * 30  GB : VPS 
 +   * 20  GB : VPS Hereli 
 + 
 + 
 +===== Automatisation NAS ===== 
 +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é”.  
 +  * 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 ==== 
 + 
 +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 post]]. Le mot de passe maître de MySQL est copié depuis ''/etc/yunohost/mysql''
 + 
 + 
 + 
 + 
 +==== 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. 
 + 
 +:!: 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 ===== 
 +====== 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). 
 + 
 +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
    * https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps    * https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps
    * 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/
  
-La Freebox ADSL est limitée en upload, d'où le –bwlimit. L'historique des transferts est loggué dans un fichier dédiéoù le temps est mentionné avant et après l'appel à rsync par la commande ''date » /var/log/rsync.log'' Enfin, on automatise l'ensemble du script en plaçant la commande dans la fiche de travail du daemon CRON pour le root, par la commande ''sudo crontab -e'' pour y placer la ligne suivante ''30 3 * * * /usr/local/src/Rsync-SaveYH.sh'' +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]].
- +
-Le contenu du script <<Rsync-SaveYH.sh>> est récupérable sur [[adminsys:scriptSauvegarde|cette page]].+
  
-:!: L'adresse IPv4 du NASHervé peut bouger, mais son URL fixe est fournie par le service Qnap, ce qui 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.+NBPour é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]]).
  
-Liens utiles à consulter pour compléter :+Ces liens pourront être utilisés pour compléter la procédure :
  
     * http://blog.joostvandermade.com/2017/02/01/raspberry-pi-automated-ftp-backup/     * http://blog.joostvandermade.com/2017/02/01/raspberry-pi-automated-ftp-backup/
     * http://blog.hekkers.net/2013/05/18/backing-up-raspberry-pi-to-synology-nas/     * http://blog.hekkers.net/2013/05/18/backing-up-raspberry-pi-to-synology-nas/
 +    * https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html
 +    * http://sebsauvage.net/wiki/doku.php?id=disque_externe
 +    * https://blog.genma.fr/?Sauvegarde-la-regle-des-3-2-1
  
adminsys/sauvegardes.1508798430.txt.gz · Dernière modification : 2017/10/24 00:40 de jaxom