Comment insérer un script de sauvegarde dans mon syno

Accueil FORUM Entraide générale Comment insérer un script de sauvegarde dans mon syno

Ce sujet a 40 réponses, 4 participants et a été mis à jour par rescue rescue, il y a 10 ans et 6 mois.

15 sujets de 1 à 15 (sur un total de 41)
  • Auteur
    Messages
  • #2237

    lecardiologue
    Participant

    Bonjour,

    J’ai découvert qu’avec un script de sauvegarde on pouvait faire des backups incrémentales des bases medintux à partir du syno, la où sa solution de sauvegarde intégrée fait défaut.

    Je suis capable de parcourir l’arborescence des fichiers du syno en ouvrant une session SFTP mais je suis incapable de coller un fichier texte contenant les instructions du script au bon endroit.

    Quelqu’un peut il me montrer la marche a suivre ?

    Merci d’avance

     

    #2238
    rescue
    rescue
    Participant

    Bonjour,

    Personnellement je n’ai pas syno ! Par contre : Il existe le solution avec MedWebTux dans l’onglet base de données une sauvegarde table par table au format sql en ayant au préalable sélectionné la base de données concernée dans la liste à gauche.

    Sinon il y a la solution complète développé et maintenu par mes soins MyIGSR

    à tester et à mon avis ça peux servir.

    @+

    Yanick

     

     

    #2249

    gerard
    Admin bbPress

    Si ta question est « comment mettre une ligne de commande sur un serveur Linux en mode texte », je pourrai te renvoyer à mon guide de survie http://delafond.org/survielinux/index.html

    Pour ton fichier de texte :
    sélectionne-le à la souris
    sur ta session sftp, au bon endroit de l’arborescence :
    vi « le_fichier_de_config »
    descends le curseur au bon endroit dans le texte (au clavier)
    clic central

    Pour enregistrer : faire la séquence Esc : wq !

    #2251

    lecardiologue
    Participant

    « <span style= »color: #353535; font-family: Verdana, Helvetica, sans-serif; font-size: 12px; line-height: 20px; background-color: #fbfbfb; »>Si ta question est « comment mettre une ligne de commande sur un serveur Linux en mode texte », je pourrai te renvoyer à mon guide de survie </span>http://delafond.org/survielinux/index.html » :

     

    En fait j’ai trouvé sur le net un script qu’il faut placer dans un repertoire de mon syno pour que ça déclenche de façon periodique les sauvegardes de DrTuxTest dont j’ai besoin.

    Je vais scruter le document de survie, merci beaucoup !

    #2284

    lecardiologue
    Participant

    De retour après quelques essais

    Je suis parvenu a placer mon fichier script dans le bon répertoire.

    J’ai constaté en editant le fichier avec vi une anomalie que je ne m’attendais pas a voir : après chaque ligne il me met un caractère ^M

    Je ne comprends pas d’ou ça sort alors que le fichier original edité avec notepad n’en contient aucun de ce type.

    Une idée ?

    merci a vous

    #2285

    gerard
    Admin bbPress
    #2286

    lecardiologue
    Participant

    Merci Gérard c’est exactement ça !

    Maintenant j’ai un autre « petit souci » : la présence de caractères spéciaux mal affichés dans le texte contenant les instructions, en particulier les « é ».

    Est-ce que c’est grave si je mets des « e » à la place des « é » ?

    #2287

    gerard
    Admin bbPress

    Normalement, il ne devrait jamais y avoir d’accents dans les noms de commandes, d’options, de fichier, etc.
    S’il y a des accents dans les commentaires, ça ne gêne personne.
    Pour avoir le bon encodage, tu devrais reprendre ton notepad++ et demander un encodage en utf-8.

    A+

    #2289

    lecardiologue
    Participant

    Retour et bonjour de nouveau à tous :

    Voici le script que j’ai « déposé » dans mon synology :

    !/bin/sh

    # *******************************************

    # Script de sauvegarde automatique des bases

    # de données d’un serveur MySQL

    # *******************************************

    # Par F. Maurel

    # Suivi des mises à jours sur nas-forum :

    #

    # *******************************************

    # v1.0 – 10/02/12 – Version initiale

    # v1.1 – 11/02/12 – Ajout path binaire mysql

    # *******************************************[/size][/font][/color]

    [color=#303030][font=Arial, Helvetica, sans-serif][size=3]# *******************************************

    # Renseigner les variables de connexion au serveur

    # *******************************************

    # Adresse IP / nom du serveur de bases de données

    mysql_server=localhost

    # Nom d’utilisateur ayant les droits adéquats, cf forum

    mysql_user=sauvegarde

    # Mot de passe de l’utilisateur

    mysql_pass=excalibur

    # Chemin du dossier où vont être sauvegardées les bases de données, chemin sans le / en fin

    dossier_sauvegarde=/volumeUSB1/usbshare

    # Chemin des binaires mysql

    dossier_bin=/usr/syno/mysql/bin

    # *******************************************

    # Ne pas modifier la suite du fichier

    # *******************************************

    bases=$dossier_bin/mysql --host=$mysql_server --user=$mysql_user --password=$mysql_pass -e "show databases;" -B -s 2> /dev/null

    if [ -z « $bases » ];then

    echo « Erreur d’accès ou pas de bases. »

    exit 1

    fi

    echo « *************************************************** »

    echo « * Début d’optimisation et de sauvegarde des bases * »

    echo « *************************************************** »

    for base in $bases

    do

    echo « ——- Traitement de la base $base ——- »

    echo « — Début d’optimisation — »

    $dossier_bin/mysqlcheck –optimize –host=$mysql_server –user=$mysql_user –password=$mysql_pass –databases « $base »

    wait

    echo « >> Optimisation terminée »

    echo « — Début de sauvegarde — »

    $dossier_bin/mysqldump –opt –verbose –host=$mysql_server –user=$mysql_user –password=$mysql_pass –databases « $base » | gzip -9 > ${dossier_sauvegarde}/backup-${base}-$(date -I).gz

    echo « ——- Sauvegarde de la base $base terminée ——- »

    done

    echo « ********************************* »

    echo « * Sauvegarde des bases terminée * »

    echo « ********************************* »

     

    Ce script permet de faire des sauvegardes complètes de DrTuxTest en mode compréssé .gz et prennent environ 4.6 Go sur mon disque USB externe (à la date d’aujourd’hui). Temps nécessaire pour cette tache : 3h48 mn. J’ai programmé une tache crontab pour l’exécuter automatiquement chaque jour à 18h pour faire des essais. La sauvegarde est sur un disque dur externe USB3.

    Je souhaiterai pouvoir compléter ce script en ajoutant des instructions pour qu’il exécute des sauvegardes incrémentales CERTAINS JOURS DE LA SEMAINE (que je pourrais fixer par exemple du lundi au vendredi inclus) et une sauvegarde TOTALE HEBDOMADAIRE, le samedi (ce jour là la charge du serveur sera minimale).

    Il faudrait aussi que ce script permette de ne garder que les 5 dernières sauvegardes totales afin d’eviter un encombrement excessif su support de sauvegarde.

    Certains d’entre vous sont-ils familiarisés avec ce type de scripts ?

    J’apprécierais un coup de main !

     

     

    #2291

    lecardiologue
    Participant

    Par ailleurs répondre au membre rescue :

    J’ai testé la solution MyIGSR. En fait je rencontre des difficultés après lancement (connexion sans problèmes au serveur avec login et mot de passe OK)

    C’est ensuite que ça se corse : le module propose de réaliser une copie du fichier DrTuxTest ce que je conçois parfaitement mais il semble proposer une « destination vers » en dessous du choix de la base que ‘on souhaite exporter mais le menu indique de nouveau la liste des bases du serveur….donc je ne comprends pas….je m’attendais à trouver un choix du suport sur lequel exporter la base copiée mais je ne vois pas….

    Un éclaircissement serait utile. J’utilise la version 1.3

    merci

    #2292
    rescue
    rescue
    Participant

    Bonjour,

    Alors pour le coup de main je serais partisan de faire simple.

    Je m’explique :

    lorsqu’on a la main sur son serveur en mode fichier il est conseillé de faire une sauvegarde du dossier mysql.

    Sous un OS Linux il se trouve dans : /var/lib/mysql

    Dans le cas contraire on fait des sauvegarde en SQL.

    Dans votre cas je vous conseille la sauvegarde du dossier mysql, c’est beaucoup plus souple.

    Voici comment faire avec un exemple de script moins complexe il faudra un fichier et le rendre exécutable et automatisé avec une tache cron.

    ————————–

    #!/bin/bash
    # creation du dossier avec la date du jour en local ou sur un disque amovible.
    mkdir /home/toto/mysql-date +%Y-%m-%d
    # copie du contenu du dossier mysql dans le dossier cree precedemment.
    cp -R /var/lib/mysql/* /home/toto/mysql-date +%Y-%m-%d

    ————————-

    Remplacer les valeurs home et toto par les vôtres.

    Ce script permet de créer un dossier ‘mysql-date_du_jour’ avec les données du dossier ‘mysql’ qui ce trouvent dans /var/lib/mysql

    Croyez moi en cas de pépin ce sera plus rapide pour vous de restaurer. Et à mon avis ça prendra moins de temps.

    3H48 pour faire un backup c’est énorme et ce n’est pas normal.

    Désolé si je ne répond pas à votre post mais dans ma philosophie d’administrateur système et de développeur je préfère faire simple.

    Merci.

    #2293

    lecardiologue
    Participant

    « <span style= »background-color: #fbfbfb; color: #353535; font-family: Verdana, Helvetica, sans-serif; font-size: 12px; line-height: 20px; »>lorsqu’on a la main sur son serveur en mode fichier » : vous voulez dire quand le repertoire « mysql » est accessible sur une arborescence par ex ?</span>

    Si j’ai bien compris votre script donne la possibilité de faire la sauvegarde « en bloc » sans choix possible de la base que l’on veut sauvegarder ? pourquoi pas …..

    Que représentent les % dans les lignes de votre script ? dois-je les adapter à mon utilisation ?

    « <span style= »background-color: #fbfbfb; color: #353535; font-family: Verdana, Helvetica, sans-serif; font-size: 12px; line-height: 20px; »>3H48 pour faire un backup c’est énorme et ce n’est pas normal » : oui je conçois que c’est long mais mon fichier sauvegardé en .sql « pèse » 20 Go environ….et mon support externe fait 1 To en USB3 directement branché au dos du synology DS212+.</span>

    Merci pour le coup de main….ça progresse !

     

     

     

    #2294
    rescue
    rescue
    Participant

    Re,

    Pour MyIGSR :

    Il faut faire une sauvegarde de toutes les tables de la base concernée.

    les fichiers sql apparaissent dans la liste plus bas.

    Cliquez ensuite sur le lien Compresser ça vous crée un zip que vous allez pouvoir  en cliquant dessus télécharger et enregistrer sur votre disque externe.

    Pour mon dernier script :

    Oui pour cet exemple il vous fait une sauvegarde du dossier complet de mysql. Si vous voulez faire un choix il faut aller plus loin dans le chemin.

    Par exemple /var/lib/mysql/DrTuxTest/*

    Vous pouvez ainsi en faire plusieurs comme cela vous enchante, c’est un exemple c’est à vous de l’adapter à ce que vous souhaitez faire.

    Les % sont utilisés que le script shell comprenne que c’est un format date qu’il faut écrire.

    Dans cet exemple de script le dossier créé sera  : mysql-2013-09-15

    Merci et à bientôt…

     

     

    #2295
    rescue
    rescue
    Participant

    Re,

    Petite vidéo pour MyIGSR sur YouTube :

    http://www.youtube.com/watch?v=yi5_-BE6rsk

    @+

     

    #2299

    lecardiologue
    Participant

    Bonjour et retour :

    J’ai donc réalisé comme proposé dans votre commentaire le petit script de copie du repertoire mysql dans lequel sont mes bases.

    Pour info elles sont stockées par défaut sur mon synology dans /volume1/@database/mysql …c’est assez atypique mais c’est ainsi.

    Je voudrais aussi réaliser une journalisation, être prévenu que tout c’est bien passé à chaque copie, est-ce faisable ?

    J’ai ajouté une commande crontab pour automatiser la copie chaque jour lorsque la charge du servur est minimale.

    Pour produire ce fameux journal on fait comment ?

    Merci beaucoup en tout cas pour le coup de main « rescue » !

15 sujets de 1 à 15 (sur un total de 41)

Vous devez être connecté pour répondre à ce sujet.