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 5 mois.

15 sujets de 16 à 30 (sur un total de 41)
  • Auteur
    Messages
  • #2300
    rescue
    rescue
    Participant

    Bonsoir,

    Je voudrais aussi réaliser une journalisation, être prévenu que tout c’est bien passé à chaque copie, est-ce faisable ?
    Oui tout est possible, chose à savoir si ça existe ou pas.

    Envoi d’un mail ou un créer un journal d’événement ?

    Je conseille un envoi de mail car un journal on y va au début, après quelques semaines on a vite oublié et c’est super lourd à lire.

    Pour le mail il faut savoir si c’est possible d’envoyer un mail avec votre Syno. Car il existe la commande mail en shell pour le faire.

    @ très bientôt…

    #2301

    lecardiologue
    Participant

    Retour :

    Je rencontre des difficultés car le petit script ne s’execute pas…

    Je l’ai placé dans le repertoire /usr/syno/mysql/bin le script en le nommant « copiemysql.sh »

    Je l’ai rendu exécutable : chmod +x copiemysql.sh

    Son propriétaire est root

    Dans crontab j’ai écrit l’éxecution à 22h pour faire un essai et j’ai écrit : /usr/syno/mysql/bin/copiemysql.sh >> /volume1/web/journalcopiemysql.txt 2>&1

    J’ai relancé le serveur cron…

    le fichier journal me revoie l’erreur : « bin/bash : /usr/syno/mysql/bin/copiemysql.sh : not found !

    Ai-je raté quelque chose ?

    #2302

    gerard
    Admin bbPress

    http://doc.ubuntu-fr.org/cron
    L’exemple ci-dessous exécutera /usr/bin/apt-get update, chaque jour, de chaque mois à 03:05 (le cron fonctionne sur 24 h) avec les droits de l’utilisateur nomdutilisateur.
    Ton fichier appartient à root, mais l’utilisateur mysql tenbte de l’exécuter. ->échec.
    Je tenterais un « chown mysql copiemysql »

    bonne chance !

    #2303

    lecardiologue
    Participant

    >Je tenterais un « chown mysql copiemysql »

    La console me renvoie l’erreur : chown : unknown user mysql….(je suis en root)

    Je me demande si j’ai bien formulé ma requête à cron….faut-il mettre un « sh » devant l’instruction /usr/syno/mysql/bin/copiemysql.sh ?

    Autre remarque : je ne connais pas les usages pour les extensions de fichiers. Est-ce que mon petit script soit porter obligatoirement l’extension « sh » et pas « txt » par exemple ?

    Merci de votre aide, je pense qu’on est pas loin de la solution.

    #2304
    rescue
    rescue
    Participant

    Bonsoir,

    Alors là c’est difficile de trouver une solution, car sauf erreur de ma part personne a syno sur le Forum.
    En tous cas moi je ne l’ai pas donc pour vous aider c’est bien compliqué surtout que ce n’est pas un Linux normalisé.

    Le seul utilisateur qui a des droits à toute épreuve c’est root.

    Moi je testerai le script avec root afin de savoir si tout va bien.
    ./copiemysql.sh
    Pour les extensions en général c’est utile pour connaître le type de fichier, en quelque sort cela n’a pas d’importance surtout dans ce cas précis l’exécution d’un script shell.
    Il faut qu’il soit exécutable.
    Par contre mettre une extension en .txt pour un script shell c’est pas déontologique.

    Avec la commande suivante pour savoir si l’utilisateur et le groupe mysql existe.
    cat /etc/passwd | grep mysql
    cat /etc/groupe | grep mysql

    @+

    #2305

    lecardiologue
    Participant

    Retour :

    ./copiemysql.sh me renvoie, en root, une erreur d’écriture indiquant que le support n’a pas assez d’espace libre….pourtant il y reste plus de 900 Go libre !!!????

    J’ai regardé plus près au niveau des bases, dans le repertoire /volume1/@database : le proprio des bases mysql installées est « admin » du group « users ».

    Je me suis dit que les difficultés d’écriture sont en fait des problèmes de droits….j’ai changé les droits sur l’ecriture dans le support amovible en accordant la propriété à « admin » (au lieu de root), j’ai également changé l’exécutant de la tache dans /etc/crontab en l’attribuant à « admin » et j’ai relancé le serveur cron.

    Ca change rien et tout cela me rend bien perplèxe……..:-(

    Je continue les essais….

    #2306
    rescue
    rescue
    Participant

    Bonsoir,

    Essayez de modifier le script pour qu’il fasse une copie localement sur le même serveur non sur le disque externe.
    Lancer le toujours avec root.

    Et si possible pourrait-on voir votre script afin que je puisse voir la syntaxe ?

    Merci.
    @+

    #2307

    lecardiologue
    Participant

    Re :

    Voici le script tel que je l’ai copié :

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

    Si ce script fonctionne, combien de temps va prendre la copie de tout le repertoire contenant les bases sur mon support externe ?

    Merci

    #2308
    rescue
    rescue
    Participant

    Bonsoir,

    Ce qu’il serait intéressant de faire c’est d’exécuter les commandes manuellement dans un terminal.
    Que dit la commande : mkdir /volumeUSB1/usbshare/mysql-date+%Y-%m-%d

    Ensuite que dit la commande en faisant la copie que d’une seule base de données dans votre cas DrTuxTest.
    cp -R /volume1/@database/mysql/DrTuxTest/* /volumeUSB1/usbshare/mysql-date+%Y-%m-%d

    @ très bientôt…

    #2309

    redouane
    Participant

    Merci pour le script, simple et astucieux.

    Au faite, il faut mettre  date +%Y-%m-%d entre deux back-stick sinon on on n'aura pas la sortie escomptée.

    merci

    A+

    #2310

    lecardiologue
    Participant

    Hello !

    Pour mkdir /volumeUSB1/usbshare/mysql-date+%Y-%m-%d la console me renvoie le prompt..c’est bon signe !
    Pour cp -R /volume1/@database/mysql/DrTuxTest/* /volumeUSB1/usbshare/mysql-date+%Y-%m-%d…me renvoie le prompt avec une copie qui s’est effectuée sans message d’erreur…..pas mal ça ! et avec une rapidité bluffante !

    Bon grace a toi je tiens le bon bout on dirait…
    Je pense que pour la sortie de la copie repertoire je vais spécifier /volumeUSB1/usbshare/DrTuxTest-date+%Y-%m-%d pour la commodité de la presentation…c’est possible ça non ?

    Encore merci de ton aide !

    #2311
    rescue
    rescue
    Participant

    Re,

    Ouf ! on arrive au bout.
    Pour la commodité de la présentation oui évidemment au moins on sait ce qui a dedans.

    Pour Faire un journal d’événement tout simple voilà une petite idée :

    # journal d’evenement
    ls -l /volumeUSB1/usbshare/DrTuxTest-date +%Y-%m-%d > /volumeUSB1/usbshare/DrTuxTest-date +%Y-%m-%d/1-journal-DrTuxTest-date +%Y-%m-%d

    Eh Oui redouane bien vu : date +%Y-%m-%d
    C’est du copier coller après 8H00 boulot et on n’a plus forcément les yeux en face des trous. 😉

    @+

    #2312

    lecardiologue
    Participant

    Réponse pour redouane :
    « Au faite, il faut mettre date +%Y-%m-%d entre deux back-stick sinon on on n’aura pas la sortie escomptée »

    C’est quoi ça un back-stick ?
    Dans le script les commandes marchent pas…..
    Avec le fameux back-machin ??? peut-être…

    merci de m’éclairer sur ce point 😉

    #2313

    redouane
    Participant

    oui absolument rescue 🙂

    Autre méthode pour  sauvegarder et restorer une base de donnée:

    Ci-dessous la commande pour sauvegarder la base de donnée sous le nom de all-dbs.sql. ( remplacer root, mot-de-passe par les vôtres):

    #mysqldump -u root -pmot-de-passe –all-databases > all-dbs.sql

    Ci-dessous la commande pour restorer la base de donnée qu’on a sauvegarder plus haut all-dbs.sql:

    #mysql -u root -pmot-de-passe < all-dbs.sql

    A+

    #2314

    redouane
    Participant

    oui le cardiologue, il faut tout simplement mettre  date +%Y-%m-%d  entre deux back-sticks.

    Sur un clavier azerty, les back sticks on les obtiens par la commande AltGr + 7 .

    Désolé je ne sais pas pourquoi elle n’apparaisse pas dans cette éditeur et pourtant j’ai appuyer sur AltGr + 7 !!!!

    Je ne sais pas comment on les nomment en francais, ce sont des apostrophes mais a l’envers :-), je sais pas si je me suis fait comprendre !!!

    A+

     

15 sujets de 16 à 30 (sur un total de 41)

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