Sauvegarde base sql

Tout d’abord, essaie de fair eune recherche sur le forum. Essaie avec le texte de l’erreur si il y en a une affichée.

Configuration de mon YunoHost

Matériel: serveur auto-hébergé
Accès Internet: ethernet a la maison et connexion externe
YunoHost version:
yunohost: 3.2.2
yunohost-admin:3.2.1x
moulinette: 3.2.0
ssowat: x3.2.0
As tu modifié ton yunohost avec des configuration spécifiques ou bien utilise tu uniquement la web administration et/ou la ligne de commande yunohost ? modifié
Si modifié, comment:
config sur nginx, postfix

Description de mon problème

suite à une merde hier lors de la mise à jour d’applications qui m’a tout cassé sur 2 applicaitons, j’ai galéré a remettre une sauvegarde sql pour l’une d’entre elle.
Du coup, je veux mettre en place une sauvegarde journaliére des bases mariadb et ceux un fichier par base. mais j’ai rien trouver dans se sens dans le webadmin. Faut il que je mettes en place à la main ses sauvegardes ou existe-t-il un moduls dans yunohost ?

merci par avance pour vos lumiéres.

cordialement.

Le système de sauvegarde de yunohost s’occupe en général de sauvegarder la base de donnée de l’application.

Pour l’instant ce système est manuel (via la webadmin ou la ligne de commande).

Si tu ne souhaites pas sauvegarder les données lourdes (fichiers de données lourd) tu peux activer la settings backup_core_only sur les apps en question.

Pour mettre en place une sauvegarde à intervalle régulier, tu peux utiliser les application borg et borgserver OU l’application archivist. A noter que borgserver et borg peuvent être sur le même système (même si c’est moins sûr).

Plus d’info ici https://yunohost.org/#/backup

merci je vais donc voir comment mettre ne place la sauvegarde uniquement des base sql.

Hello,

Perso et si vous avez une machine physique en auto-hébergement (cher ailleurs ^^), je suis passé sur proxmox et la sauvegarde/restauration de vm fonctionne très bien.
Pour les plus riches avec 2 machines physiques, on peut mettre le place la réplication

martoni

je fais déjà des sauvegardes VM mais une fois par semaine.
meme sur mon boulot, on sauvegarde les base de données toutes les nuits.
pour ce qui est de 2 serveurs qui se réplique, c’est une archi bien grosse pour mon utilisation perso.

Hello,

D’accord, c’est vrai qu’avec le souci initial, une sauvegarde bdd complétera ta backup yunohost, ceinture et bretelles :slight_smile:
Enfin, pour l’utilisation perso, mon serveur dell precision 5810 (SSD+Xeon+16GoRAM) sans RAID avec un disque interne pour le storage backup consomme 70W. C’est plus élevé qu’avec un RASP mais la gestion est plus souple par proxmox. En revanche, c’est vrai qu’en mode réplication, cela ferait 140W. Beau budget pour ses données persos + messagerie + les services yunohost, Perso, je suis resté en mode standalone.
N’hésites pas à partager ton script de backup bdd, ça pourrait aider des personnes dans ton cas, merci.

Enfin, n’oublions pas que des sauvegardes sans test de restauration, c’est inutile ^^

Hello de bon matin.
A toute fin utile, voici les tâches cron de sauvegardes qui sont lancées chaque nuit sur mon serveur yunohost:

sauvegarde quotidienne de yunohost

0 1 * * * yunohost backup create

suppression des sauvegardes yunohost vieilles de plus de 7 jours

30 2 * * * find /home/yunohost.backup/archives -type f -mtime +7 -exec rm {} ;

dump des bases mysql

0 3 * * * mysqldump --all-databases > /home/yunohost.backup/mysql_dumps/dump-$( date ‘+%Y-%m-%d_%H-%M-%S’ ).sql -u root -pmot_de_passe_root_mysql

suppression des dumps mysql vieux de plus de 7 jours

0 4 * * * find /home/yunohost.backup/mysql_dumps -type f -mtime +7 -exec rm {} ;

copie des sauvegardes vers le disque interne de la freebox HD (décodeur TV)

30 4 * * * /root/copie_sauvegarde.sh

Pour la partie dump des bases mysql, au lieu de l’option --all-databases on peut lancer la commande en précisant la base à sauvegarder (ce qui donnerait pour la base nextcloud quelque chose comme:
mysqldump nextcloud > /home/yunohost.backup/mysql_dumps/nextcloud-$( date ‘+%Y-%m-%d_%H-%M-%S’ ).sql -u root -pmot_de_passe_root_mysql

Comme on peut le voir, à la fin j’envoie mes sauvegardes yunohost ainsi que mes dumps mysql vers le disque dur de mon boitier freebox HD (V5) en FTP via un script (copie_sauvegarde.sh) dont voici le contenu (il vous faudra avoir installé au préalable curlftpfs qui permet de monter localement un répertoire FTP distant):

#!/bin/bash

curlftpfs -o allow_other utilisateur_ftp_freebox:mot_de_passe_ftp_freebox@hd1.freebox.fr/Disque\ dur /media/freebox/ &&
cp -ruv /home/yunohost.backup/ /media/freebox/backup_yunohost/ &&
find /media/freebox/backup_yunohost/yunohost.backup/archives -type f -mtime +7 -exec rm {} ; &&
find /media/freebox/backup_yunohost/yunohost.backup/mysql_dumps -type f -mtime +7 -exec rm {} ; &&
umount /media/freebox

Voici ce que fait le script:

  • Montage du disque dur interne de la freebox HD dans /media/freebox

  • copie du contenu de /home/yunohost.backup (dans lequel se trouvent les sauvegardes yunohost ainsi que les dumps mysql) dans /media/freebox/backup_yunohost (c’est à dire en réalité sur le disque dur interne de la freebox HD)

  • Suppression des sauvegardes yunohost vieilles de plus de 7 jours sur la freebox HD

  • Suppression des dumps mysql vieux de plus de 7 jours sur la freebox HD

  • Démontage du disque dur de la freebox HD

Et voilà!

6 Likes

j’ai un peut adapté les scripts de purge des fichier car j’utiliser des line symbolique pour les dossier mysql_dump et archive.

un grand merci a @Benance pour ce mini tuto. :+1:

Au lieu de monter en FTP la save sur la FB.
Ne serait-il pas plus simple de monter SMB, comme on l’a vu ensemble pour l’acces depuis Nextcloud ?

Le problème c’est que j’ai une freebox V5 qui ne fait pas de SMB, mais uniquement du FTP…

On avait discuté que le ftp etait pas top, bien que tu dises que la ca sera du local.

Autant resté en ftp ou SMB ?

si tu peux rester en smb, alors reste en smb, ça évitera d’avoir à installer curlftpfs sur ton serveur et ça fonctionnnera tout aussi bien.

Crois tu que tu peux me faire la modification de ton script pour envoyer sur la freebox en smb ?

il y a juste à remplacer la ligne “curlftpfs -o allow_other …” par la commande de montage manuel d’un répertoire CIFS: “mount.cifs …” (qui devrait être disponible dans l’historique de bash sur ton serveur) et remplacer les chemins, utilisateur, mot de passe par les tiens.
Le reste ne devrait pas bouger.
Reviens vers moi en message privé si tu as besoin de + d’aide