Synology Sauvegarde automatique d'une base SQL sur un NAS DS218+

Manard

Nouveau membre
6 Juin 2020
5
0
0
Bonjour,

Sur mon serveur NAS DS218+, j'ai installé un forum phpbb 3.3 avec la version php 7.3. Je suis actuellement déclaré administrateur et vais partager les tâches d'administration avec un des participants qui n'est pas trop au fait de gestion de l'administration.

En cas d'erreur de paramétrage ou suppression inadéquate de données, je désire faire une sauvegarde automatique journalière de la base de données.

En faisant une recherche, j'ai lu le tuto rédigé par Cachem : https://www.cachem.fr/sauvegarder-automatiquement-base-sql-site-nas , que je remercie.

J'ai déroulé et pris en compte le tutoriel, mais quand j'exécute la commande manuelle de sauvegarde depuis le "Planificateur de tâches" , rien ne se passe.

Voici le contenu du script
Code:
<?php
    $date = date('d-m-Y-H\hi');

    // Répertoire de destination des backups (chemin absolu !)
    define('DIR_DEST', '/volume1/web/Sauvegardes_Web/Forum_Amis_CNPR/');

    // Paramètres de connexion à la base de données
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PWD', 'mot de passe de la base de données');
    define('DB_NAME', 'Nom de la base');

    // Lancement du backup
    system(« mysqldump –host= ».DB_HOST. » –user= ».DB_USER. » –password= ».DB_PWD. » « .DB_NAME. » > « .DIR_DEST.DB_NAME. »_ ».$date. ».sql »);
    system(« gzip « .DIR_DEST.DB_NAME. »_ ».$date. ».sql »);

Dans le Planificateur de tâches, j'ai créé une nouvelle tâche

99897c213919474c4119.jpg


J'ai tenté remplacer : /usr/local/bin/php56 -f par /usr/local/bin/php73 -f , rien ne se passe.

Je reçois l'erreur suivante par mail :
Code:
PHP Parse error:  syntax error, unexpected 'mysqldump' (T_STRING) in /volume1/web/utilitaires/script/Backup_base_Amis_CNPR.php on line 14
Elle s'enregistre également dans un dossier en parallèle : /volume1/web/utilitaires/synoscheduler

Où ai-je fait une erreur dans le script ?

Je vous remercie de votre aide

Bernard
 
Salut,
Je ne serait t'aider pour le script, mais pourquoi ne pas utiliser hyperbackup ?

Hyperbackup te permettra même de créer des versions, afin au besoin de revenir 1, 2, 3 ou x jours en arrière !
 
Bonjour EVOTk,

Je te remercie de cette possibilité que je ne connais pas. Je vais regarder si cette tâche de sauvegarde peut-être également réalisée par ce biais

Sinon, je viens de trouver une erreur, elle se situe au niveau des guillemets » dans le script que j'ai remplacés par " . J'avais remplacé les apostrophes, mais pas les guillemets

Il y a encore un souci car le fichier de sauvegarde est vide avec cette erreur

Code:
Sortie standard/erreur :
    sh: mysqldump: command not found
gzip: 06-06-2020-19h08.sql: No such file or directory


Je viens de faire une recherche dans le NAS sous DSM 6.2.3-25426 de mysqldump, la recherche ne trouve pas ce fichier...

Bonne soirée

Bernard
 
Dans le cas ou cela pourrai t’intéresser voici une autre solution, plutot similaire a ce que tu souhaite faire :

Dans les paramètres de taches planifiée / script, voici ce qu'il faut mettre :

Code:
#!/bin/bash
date=$(date +"%d-%b-%Y")
backup_path="/volume1/SaveSQL/"

#DB_INFOS
user="root"
pass="ton_mot_passe_db"
host="localhost"
dbname="nom_de_la_db"

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

Fonctionnel sous DSM 6.2.3 ! Le chemin est maintenant sous /usr/local/mariadb10/bin/mysqldump ( merci synology ^^ )
 
Bonjour EVOTk,

Je te remercie c'est maintenant fonctionnel :giggle:

Bizarre que la recherche effectuée avec Winscp n'ait pas trouvé ce ou ces fichiers mysqldump hier , pourtant j'étais positionné à la racine...

Bernard