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/06/07 17:14] – ajout mysql jaxomadminsys:sauvegardes [2022/11/05 23:20] (Version actuelle) – retrait Raspberry Pi jaxom
Ligne 1: Ligne 1:
 ====== Sauvegardes ====== ====== Sauvegardes ======
  
-Des sauvegardes sont effectuées manuellement avec le service de backups de Yunohost ''yunohost backup create''. Les fichiers résultantssitués dans /home/yunohost.backup/archives, sont ensuite copiés manuellement sur d'autres disques Freebox maison, NAS distant Hervé+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.
  
-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 [[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]].//
  
-FIXME De plusla 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.+NB: Pour des raisons de performanceles serveurs ne sont pas chiffrés, et seules les sauvegardes Borg le sont.
  
-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 [[adminsys:pra|P.R.A.]] doit être testé régulièrement ( FIXME fonctionnement partiel au 18/12/2017).
  
-L'intégration de cette commande est en cours, avec un premier test le 07-06-2018. 
  
-:!: 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 RSync ===== 
  
 +===== 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.
  
-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/.sshdont la clé publique est envoyée au NAS avec ''ssh-send-id'', pour le compte “admin@NASHervé”+Le BackupVPS partage son espace disque (250GBainsi : 
 +   * 200 GB : Serveur 
 +   * 30  GB : VPS 
 +   * 20  GB : VPS Hereli
  
-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''+===== 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.+  * 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.
  
-Cette commande 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 +==== Base de données ====
-   * 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/+
  
-La Freebox ADSL est limitée en upload, d'où le –bwlimitL'historique des transferts est loggué dans un fichier dédié, avec un timestamp par la commande ''date » /var/log/rsync.log' (FIXME à vider régulièrement). Enfinon 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''.+La restauration de Nextcloud est lourde en raison d'une BDD jointe aux fichiersLa 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 Yunohostles 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]].
  
-Le contenu du script ''Rsync-SaveYH.sh'' est récupérable sur [[adminsys:scriptSauvegarde|cette page]].+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. 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 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.+:!: 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://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://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]]).
  
-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     * 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.1528384446.txt.gz · Dernière modification : 2018/06/07 17:14 de jaxom