Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour un examen

Sujet résolu
    21 mai 2019 à 15:16:17

    Bonjour tout le monde, 

    je vous contact car j'ai besoin d'aide pour un examen, le travail consiste à "

    Ce travail pratique consiste à mettre en place un script et un environnement permettant d’effectuer à intervalles réguliers la sauvegarde de plusieurs répertoires." Nous devons faire du bash dans un .sh


    Si une âme charitable serait prête à m'aider, ca serait très gentil de votre part et bien sur rémunéré.

    Si ca intéresse quelqu'un envoyez moi un mp ou répondez ci-dessous. 

    Merci d'avance


    -
    Edité par Hallowex 21 mai 2019 à 15:50:13

    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2019 à 15:50:56

      Bonjour,

      On peut t'aider, mais pas le faire à ta place.

      Montre nous ce que tu as fait déjà, on partira de là :-)

      • Partager sur Facebook
      • Partager sur Twitter
        21 mai 2019 à 16:53:09

        si tu veux une direction pour pas te planter regarde rsync et crontab, avec ça tu devrais pouvoir t'ensortir pour le sujet
        • Partager sur Facebook
        • Partager sur Twitter

        la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

        Mon GitHub

          22 mai 2019 à 14:46:47

          ox223252 a écrit:

          si tu veux une direction pour pas te planter regarde rsync et crontab, avec ça tu devrais pouvoir t'ensortir pour le sujet

          C'est déjà ce qu'il y a marquer dans le sujet.

          Je ne sais pas pourquoi il veut cpio pour moi il vaut mieux utiliser tar.

          Après rsync est trop haut niveau pour sa sauvegarde il faut mieux utiliser rdiff (le mécanisme de diff binaire de rsync) ou un outils similaire comme xdelta3.

          En gros le mécanisme consiste à faire une sauvegarde complète du dossier avec tar (ou cpio) puis à utiliser un outils de diff binaire (rdiff) pour les incréments.

          Pour faire un incrément tu refais un tar du dossier à sauvegarder puis tu fais un rdiff de ce tar avec le tar de la sauvegarde initiale et supprime le tar que tu viens de faire.

          Il y a des outils pour faire ça tous seul comme rdiffdir ou duplicity.

          Avec rdiffdir tu peux faire cela comme ça pour le backup initial:

          mkdir -p backup
          rdiffdir -z --write-sig-to initial_backup/initial_backup.sig directory_to_backup initial_backup/initial_backup.tar
          gzip initial_backup/initial_backup.tar

          Et comme ça pour rajouter un incrément :

          timestamp=$(date +%s)
          rdiffdir -z --write-sig-to "backup/inc_backup_${timestamp}.delta.sig" delta backup/initial_backup.sig backup/*.delta.sig  directory_to_backup backup/inc_backup_"${timestamp}".delta

          Et avec duplicity c'est encore plus simple :

          duplicity --encrypt-key  --log-file=/var/log/backup.log dossier_a_sauvergarder file:///chemin/du/dossier/de/sauvegarde


          Pour les journaux de log utilise tu peux utiliser la commande logger (cela log dans syslog ou journald qui gère le nettoyage des logs). Sinon si tu les logs dans un fichier tu peux utiliser logrotate pour les nettoyer périodiquement.

          • Partager sur Facebook
          • Partager sur Twitter
            22 mai 2019 à 21:03:53

            Je tiens juste à préciser que je suis un très jeune débutant à Linux j'ai donc de la difficulté encore avec vos termes techniques et que mon professeur est un grand malade de nous demander de faire un tp comme ca comme premier travail ... (je dois le rendre vendredi) 

            merci pour votre aide, je vais finalement rater mon module car le temps est contre moi. 

            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2019 à 9:46:42

              je vais te donner une version ultra basique qui fera une partie du job (je me suis inspiré de ceci) :

              #!/bin/bash
              
              INPUTS=( \
              	~/tmp \
              	)
              
              OUTPUT=~/backup
              
              for INPUT in "${INPUTS[@]}"
              do
              	mkdir -p $OUTPUT/$INPUT
              	echo $(date +%Y-%m-%d_%H-%M-%S) >> $OUTPUT/$INPUT/log.txt
              	echo $(date +%Y-%m-%d_%H-%M-%S) >> $OUTPUT/$INPUT/error.txt
              
              	tar -zcvf $OUTPUT/$INPUT/backup-$(hostname)-$(date +%Y-%m-%d_%H-%M-%S).tar.gz -g $OUTPUT/$INPUT/files.list --exclude $INPUT/backup* $INPUT 2>> $OUTPUT/$INPUT/error.txt 1>> $OUTPUT/$INPUT/log.txt
              done

              bon ce code te fait :

              • sauvegarde incrementale,
              • les log et les errueus dans deux fichiers séparés,
              • le nommage en fonction du serveur

              Il te reste à faire l'envoie en ssh de la dernière sauvegarde (rsync) et la partie l'automatisation (crontab)

              PS : le temps n'est pas cointre toi, il est le même pour tout le monde, mais tu devrais chercher un peut, car ça m'a pris 10 mins pour trouver un tuto simple

              :D



              -
              Edité par ox223252 23 mai 2019 à 9:47:56

              • Partager sur Facebook
              • Partager sur Twitter

              la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

              Mon GitHub

                23 mai 2019 à 11:15:40

                salut,

                les echo sont inutiles.

                mais, puisque le format de date est toujours le même, ça vaudrait la peine mettre la date dans une variable.

                il existe une variable HOSTNAME

                et les noms de variables tout en majuscules sont réservés aux variables d'environnement (HOME,PATH,HOSTNAME...)

                -
                Edité par dantonq 23 mai 2019 à 11:20:17

                • Partager sur Facebook
                • Partager sur Twitter

                Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                  23 mai 2019 à 14:04:56

                  c'est vrai et dans ma version (en dev c'est changé) mais la c'etait fait en vitesse (genre 10 mins :) ).
                  • Partager sur Facebook
                  • Partager sur Twitter

                  la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

                  Mon GitHub

                  Besoin d'aide pour un examen

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown