Navigation

    La Cabane Libre

    • Register
    • Login
    • Search
    • Catégories
    • Recent
    • Mots-clés
    • Ciné Libre

    SOLVED Script backup

    La Salle Problématique
    3
    11
    1903
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Elberton
      Elberton last edited by The Worm's

      Bonjour les copains.
      J’ai un petits soucis.
      J’ai réalisé des scripts de backup sur un serveur ftp .
      J’ai mis mes scripts dans le répertoire /etc/cron.daily.
      Le backup se passe bien. Par contre la rotation des sauvegardes ne fonctionne pas.*
      Du coup je me retrouve avec une flopé de .tar.
      J’ai réalisé un script également de sauvegarde en local, et un script de rotation. Le script de backup fonctionne. Mais la rotation ne fonctionne que si je passe en ligne de commande. Si je le met dans le cron la tache ne fonctionne pas.
      Voici mon script de backup sur ftp dont la rotation ne fonctionne pas :

      FTPU="XXXXX"
      FTPP="XXXXX"
      FTPS="192.168.1.12"
      
      NOW=$(date +"%d-%m-%Y")
       
      ### local directory to backup ###
      FILE="/home/libertempo/Backup"
      retention=`date +%d-%B-%Y --date='7 day ago'` 
      lftp -u $FTPU,$FTPP -e "cd LIBERTEMPO;mkdir $NOW;cd $NOW;mirror -R $FILE /LIBERTEMPO/$NOW;quit" $FTPS
      # Rotation des sauvegardes
      lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf $retention;quit"
      
      1 Reply Last reply Reply Quote 0
      • Elberton
        Elberton last edited by

        bon voilà cela fonctionne. j’ai trouvé un peu de temps pour le faire.
        En fait déjà je me suis trompé dans la variable retention.
        J’ai mis un %B qui indique le mois écrit par exemple décembre au lieu du du chiffre comme dans ma varaible NOW.
        Ensuite pour le rm je n’étais pas dans le bon dossier. Du coup en rajoutant la racine et la variable cela supprime bien le dossier.

        Du coup voilà mon script entier si jamais cela veut servir a quelqu’un :

        FTPU="yyyyy"
        FTPP="xxxx"
        FTPS="192.168.1.12"
        
        NOW=$(date +"%d-%m-%Y")
        FILE="/home/admin-sbs/Sauvegarde"
        retention=`date +%d-%m-%Y --date='7 day ago'` 
        lftp -u $FTPU,$FTPP -e "cd SRVNOETHYS;mkdir $NOW;cd $NOW;mirror -R $FILE /SRVNOETHYS/$NOW;quit" $FTPS
        lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf /SRVNOETHYS/$retention;quit"
        
        1 Reply Last reply Reply Quote 1
        • The Worm's
          The Worm's Manchot Adélie last edited by

          De souvenir rm -rf n’est pas une commande ftp.
          Mais le plus simple c’est d’avoir les logs.

          Après sache qu’un très bon outil existe tel que backup manager
          https://doc.ubuntu-fr.org/backup-manager

          1 Reply Last reply Reply Quote 0
          • The Worm's
            The Worm's Manchot Adélie last edited by The Worm's

            :oups: pas trop l’habitude d’utiliser lftp, du coup je ne connaissais pas ses commandes 😛

            Pour moi @Elberton c’est $retention qu’il ne comprend pas

            Je préfère le décortiquer en reprenant tes variables :

            # Format de la date
            format_date='%d-%B-%Y'
             
            # Variable de date du jour, en fonction du format choisi
            date=`date +${format_date}`;
             
            # Le nombre de jour que tu souhaite archiver
            jretention="7";
             
            # Calcul du nombre de jour, remontant à plus de 7 jour(s)
            retention=`date --date "-${jretention} days" +${format_date}`;
            
            lftp ftp://${FTPU}:${FTPP}@${FTPS} -e "rm -rf ${retention} ;ls ; quit";
            

            Pour avoir des logs rajoute

            # Le chemin du rapport
            rapport='/home/cabanelibre/rapport.log';
            
            lftp ftp://${FTPU}:${FTPP}@${FTPS} -e "rm -rf ${retention} ;ls ; quit" >> ${rapport};
            
            1 Reply Last reply Reply Quote 0
            • Elberton
              Elberton last edited by

              ok ça marche.
              par contre je te dirai sa mardi car je suis sur un autre site et j’ai pas accès à la bécane à distance.

              1 Reply Last reply Reply Quote 0
              • Clochette
                Clochette last edited by Clochette

                Pour tester et faire du debug que ce soit ne perl, python ou bash j’utilise les options adéquat, regarde pour lancer ton script avec du bash -x nom_de_ton_script, si en plus tu mets de jolie echo tout plein tu verra à quelle étape à coup sûr il se plante.
                N’hésite pas non plus à te faire des sorties d’erreur propre avec des conditions.

                De ce côté j’aime bien le perl car il permet d’exporter le résultat assez simplement d’une commande shell dans un log, tu peux ainsi renvoyer l’output de ta commande directement dans ton fichier de log et avoir le déroulé d’un rsync par exemple complet.

                D’ailleurs pourquoi faire du ftp plutot que de t’appuyer sur rsync, tu as une option pour la destruction :

                http://www.noah.org/wiki/Rsync_backup

                Burp : je viens de voir l’autre fil de discussion, oki je comprends pourquoi ftp.

                Du coup beaucoup plus complexe pour les non utilisateurs de python il y a la possibilité d’utiliser la libftp de python pour faire ça.

                Sinon viteuf lftp doit pouvoir répondre à tes besoins en exécutant un scripts via ftp justement :

                Un exemple trouvé sur le net à vérifier :

                https://blog.m0le.net/2012/02/17/le-petit-script-de-backup-de-nono/

                1 Reply Last reply Reply Quote 0
                • Elberton
                  Elberton last edited by

                  J’ai réinstallé mon serveur car j’ai fait craché mon apache. Je vais voir si je peux installer urbackup client vu que j’en ai un srv. Mais comme il va être sur une dame je dois testé

                  Clochette 1 Reply Last reply Reply Quote 0
                  • Clochette
                    Clochette @Elberton last edited by

                    @elberton a dit dans Script backup :

                    il va être sur une dame je dois testé

                    Il va être dessus :diable: ?

                    Sinon pour du backup j’ai testé Borg et bareos, le premier est vraiment sympa (tout en SSH) le deuxième est déjà bien plus prise de tête à mettre ne place te à configurer, mais tous est scriptable donc …

                    1 Reply Last reply Reply Quote 0
                    • The Worm's
                      The Worm's Manchot Adélie last edited by

                      lftp fonctionne nickel pour moi 😉

                      1 Reply Last reply Reply Quote 0
                      • Elberton
                        Elberton last edited by

                        pas une dame, une dmz je voulais dire. C’est le correcteur orthographique du tél…

                        1 Reply Last reply Reply Quote 0
                        • The Worm's
                          The Worm's Manchot Adélie last edited by

                          C’est bon pour toi ? @Elberton qu’on mette résolu ou pas ?

                          ça me fait penser qu’il va falloir que je fasse les brochures d’explication d’utilisation de ce nouvelle iceberg :oups:

                          1 Reply Last reply Reply Quote 0
                          • Elberton
                            Elberton last edited by

                            bon voilà cela fonctionne. j’ai trouvé un peu de temps pour le faire.
                            En fait déjà je me suis trompé dans la variable retention.
                            J’ai mis un %B qui indique le mois écrit par exemple décembre au lieu du du chiffre comme dans ma varaible NOW.
                            Ensuite pour le rm je n’étais pas dans le bon dossier. Du coup en rajoutant la racine et la variable cela supprime bien le dossier.

                            Du coup voilà mon script entier si jamais cela veut servir a quelqu’un :

                            FTPU="yyyyy"
                            FTPP="xxxx"
                            FTPS="192.168.1.12"
                            
                            NOW=$(date +"%d-%m-%Y")
                            FILE="/home/admin-sbs/Sauvegarde"
                            retention=`date +%d-%m-%Y --date='7 day ago'` 
                            lftp -u $FTPU,$FTPP -e "cd SRVNOETHYS;mkdir $NOW;cd $NOW;mirror -R $FILE /SRVNOETHYS/$NOW;quit" $FTPS
                            lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf /SRVNOETHYS/$retention;quit"
                            
                            1 Reply Last reply Reply Quote 1
                            • First post
                              Last post

                            Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB