Forum des NAS

Tous les fabricants de NAS réunis sur un forum unique : Asustor, Qnap, Synology...

Les tutoriaux rédigés par les membres
Avatar de l’utilisateur
par EVOTk
#91980
Bonjour,
Aujourd'hui je vous propose une solution simple pour sauvegarder une base SQL d'un site hébergé sur le NAS.

Fonctionnel sur DSM 6.2.3 avec MariaDB10.

Pour mon exemple, j'ai créé un dossier Save_MariaDB sur mon DD Ext présent sur mon NAS :
Image
Un clique droit, propriété me donne le chemin absolu : /volumeUSB2/usbshare/Save_MariaDB

Ensuite dans Panneau de configuration > Tache planifié je créé une nouvelle tâche planifié, en sélectionnant "Script défini par l'utilisateur"
Image

Je vais nommer la tâche SaveDB_DDExt, elle doit s’exécuter en root.
Image

Dans l'onglet suivant, je la programme tous les jours a 00h01 !
Image

Puis dans Paramètres de la tâches, j'entre mon script :

Code : Tout sélectionner
#!/bin/bash
backup_path="/volumeUSB2/usbshare/Save_MariaDB/"
date=$(date +"%Y-%m-%d")

user="mon_user"
pass="mon_pass"
host="localhost"
dbname="nom_base_a_sauvegarder"

/usr/local/mariadb10/bin/mysqldump --user=$user --password=$pass --host=$host $dbname > $backup_path/$date-$dbname.sql

#find $backup_path/* -name '*.sql' -mtime +15 -exec rm {} \;

Ici, il faudra modifier, user, pass, et dbname. Votre base se trouvant sur le NAS, host reste égal a localhost.
On peut si on le souhaite, envoyé un mail pour informer du bon déroulement ( ou pas ) de notre sauvegarde.
Et on valide !

On exécute une première fois, en le sélectionnant et en appuyant sur Executer

Ici j'ai fait un essai avec ma base de donnée "nextcloud_", elle est maintenant dans le dossier Save_MariaDB
Sous le nom "2020-06-07-nexcloud_.sql"
Image

Note : La derniere ligne du code sert a supprimer automatiquement TOUS les fichiers .SQL de plus de 15 jours. Dans le dossier cité. ( attention donc ! )
Si vous souhaitez l'utiliser, vous devez dé-commenter la ligne en enlevant le # en début de ligne. Vous pouvez modifier le chiffre 15 afin de changer le temps de conservations de vos sauvegardes.

Code : Tout sélectionner
find $backup_path/* -name '*.sql' -mtime +15 -exec rm {} \;
Avatar de l’utilisateur
par EVOTk
#91985
Merci de ton retour ;)

Effectivement, je ne rajoute pas l'heure dans le nom du fichier, donc en cas de multiple sauvegarde la même journée, elle écrase la précédente ( ce qui est dommage pour une sauvegarde ! )

Edit : J'ai aussi modifier mon script par defaut la suppression auto est commenté afin d'etre inactive, je préfere dans se sans que active par defaut ! on ne sait jamais ! C'est méchant un - rm ^^ )
#98641
Bonjour Evotk,

Je te remercie également pour ce tuto.

Mais j'aurai deux questions dont une très importante :

  • 1

La moins importante comment sauvegarder dans un autre répertoire qui se trouve sur le réseau par exemple sur un autre Nas ?
J'ai bien essayé de mettre : backup_path="\\SERVEUR2\save_bdd" au lieu de backup_path="/volume1/save_bdd" mais non cela ne veut pas.

  • 2

question la plus importante, il y a une sauvegarde super, mais comment on la restaure ?

Car j'ai essayé depuis phpmyadmin puis l'onglet importer or il est écrit ceci :

"Le fichier peut être compressé (gzip, bzip2, zip) ou non.
Le nom du fichier compressé doit se terminer par .[format].[compression]. Exemple : .sql.zip
Parcourir les fichiers :Aucun fichier choisi(Taille maximale : 1 024Mio)"

J'ai fait un copier-coller de ce qui est écrit mais ce qui m'interpelle est la taille maximale, le dump de mon sql fait 17,1Mo
Cela va fonctionner ou y a-t-il une séquence pour réinjecter la sauvegarde ?

Merci d'avance de votre réponse.

Avatar de l’utilisateur
par EVOTk
#98644
Salut,
Pour la question 2, tu peu restaurer ta sauvegarde comme ceci :

Code : Tout sélectionner
/usr/local/mariadb10/bin/mysql --user=$user --password=$pass --host=$host $dbname < $backup_path/nom-du-fichier.sql

Pour la 1, je j'ai jamais fait de sauveg1rée de db que un chemin smb, je ne serais te répondre. Si j'ai un peu de temps en soirée, je regarderai ceci plus en détails.

#98647
Merci EVOTK pour ta réponse rapide.

N'étant pas très linux ou newbie si tu préfères ou exécute tu la commande ?
En refaisant une tache planifiée je suppose ? Car il n'y as pas de console sur un nas ou alors tu vas m'apprendre comment y accéder ;)

Ne te tracasse pas pour la question 1, j'ai fait depuis mon Nas qui sert de sauvegarde une réplication du contenu via le réseau 10 minutes après la sauvegarde et voilà.
Avatar de l’utilisateur
par EVOTk
#98670
Sur Syno, le plus simple reste d'utiliser les taches planifié, tu créer une tache sans programmation, que tu execute manuellement une fois, et ton backup sera restoré :

Exemple pour restauré un backup nommé : 2020-12_mon_backup.sql qui serait stocké dans /volumeUSB2/usbshare/Save_MariaDB/

Code : Tout sélectionner
#!/bin/bash
backup_path="/volumeUSB2/usbshare/Save_MariaDB/"

user="mon_user"
pass="mon_pass"
host="localhost"
dbname="nom_base_a_sauvegarder"

/usr/local/mariadb10/bin/mysql --user=$user --password=$pass --host=$host $dbname < $backup_path/2020-12_mon_backup.sql

L'autre solution , plus linuxienne, consisterai a enregistrer cette commande dans un fichier bash et l'executer en SSH.

#98672
Encore une fois merci pour ta réponse rapide.

Je ne sais pas si tu as vu dans d'autres parties du forum mais je vais avoir un Nas Asustor bien plus puissant que les Syno actuel que j'ai et je vais sûrement transférer la base de données.
Du coup, je pense qu'il va falloir que j'exécute manuellement cette commande en ssh on verra ça le jour J.
Avatar de l’utilisateur
par EVOTk
#98675
Je ne connais pas Asustor, mais oui, il te faudra surement le faire comme ceci ( mais il faudra s'assurer du chemin de mariadb10/mysql ) sinon, une autre solution serait de modifier PHP pour permettre l'upload de plus gros fichier dans phpmyadmin :

A modifier dans php.ini ( chemin "classique" pour php7.4 : /etc/php/7.4/apache2/php.ini ) avec par exemple ces valeurs :

Code : Tout sélectionner
post_max_size = 32MB
upload_max_filesize = 32MB
memory_limit = 128MB

puis redémarrer php pour que cela soit pris en compte.
Bien que pas testé pour ma part, ceci devrait fonctionner.

Merci vraiment ! Ça semble très pr[…]

Coupure Courant TS-219P

Oui merci pour le retour. J'avais trouvé l[…]

Remplacement DD et bruit

Bonjour, J'ai un DS216+II avec - jusqu'ici - 2 d[…]

euh, oui, pardon j'ai zappé... Technical […]

Site hébergé sur un serveur IKOULA

Ikoula