IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

rsync --suffix et gestion des backup


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut rsync --suffix et gestion des backup
    Bonjour,

    Je dois faire une sauvegarde incrémentale d'un répertoire vers un autre serveur.
    J'ai utilisé la commande (lancé via crontab).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsync -avzb --log-file="$LOGFILE" --suffix="$SUFFIX" --progress  $SRC  $DST
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SUFFIX=.`date +"%Y%m%d"`
    $DST=user@host:/path
    Elle marche parfaitement. Les fichiers sont biens sauvés et suffixés par date.

    Mais à chaque modifications puis synchronisation dans $SRC d'un fichier (appelons-le 'file' pour l'exemple) , le fichier modifié sera "rsyncé", suffixé et envoyé dans dest.
    On aura donc dans le répétoire $DST:
    file
    file.suffixdate1
    file.suffixdate2
    file.suffixdate3
    file.suffixdate4 (et ainsi de suite avec file le fichier dans état le plus récent, file.suffixdate1 un backup récent et file.suffixdate4 un backup beaucoup plus ancien).

    Comment limiter le suffixe à date3 (et donc supprimer tous les suffixdate4 etc) pour ce fichier et tous les autres $DST?

    Dois-je coder un crawler de fichier dans un autre script en me basant sur les log de rsync?
    Existe-t-il un moyen de faire un suffixe incrémental (.1 puis .2 puis .3 puis .4)?
    Y-a-t-il une alternative à rsync?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    j'aurai tendance à penser que logrotate fait très exactement ce que tu cherches, même si à l'origine c'est censé faire tourner des logs mais peu importe au final qu'il s'agisse de renommer des logs ou des backups, le suffixe peut même être pris en compte par logrotate directement plutôt que par rsync

    Edit: le script peut finalement ressembler à ça (testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
     
    BASEDIRECTORY="/home/rorschach2"
     
    SRC="${BASEDIRECTORY}/source/backup.dat"
    DST="${BASEDIRECTORY}/destination/file"
    LOGFILE="${BASEDIRECTORY}/logs/logfile"
    CONFFILE="${BASEDIRECTORY}/config/rotation.conf"
     
    /usr/sbin/logrotate -f "${CONFFILE}" &&
    /usr/bin/rsync -avzb --log-file="${LOGFILE}" --progress "${SRC}" "${DST}"
    et le fichier /home/rorschach2/config/rotation.conf de ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /home/rorschach2/destination/file {
       missingok
       rotate 4
       dateext
       dateformat .%Y%m%d
    }
    dommage qu'on puisse pas donner le fichier de conf par l'entrée standard à logrotate...

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Bonjour,

    Je ne connaissais pas la commande logrotate, je suis entrain de l'expérimenter en ce moment.

    Deux précisions par contre:
    • Je n'ai pas trouvé comment écrire de fichier de configuration pour logrotate concernant des fichiers dans $DST (une machine distante et non un répertoire locale). Je suis donc passé d'un script qui "poussait" sa sauvegarde à un "tirant" sa sauvegarde.
    • Comment faire pour que la configuration concerne tous les dossiers et sous-dossier? faire un fichier du genre
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      /home/rorschach2/destination/* {
         missingok
         rotate 4
         dateext
         dateformat .%Y%m%d
      }
      ne se limite qu'a un seul répertoire. Or je synchronise un grand nombre de dossiers et de sous dossiers à chaque sauvegarde (des centaines de Giga).

  4. #4
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par rorschach2 Voir le message
    Je ne connaissais pas la commande logrotate, je suis entrain de l'expérimenter en ce moment.
    c'est ce qui fait tourner tous tes logs dans /var/log !

    Je n'ai pas trouvé comment écrire de fichier de configuration pour logrotate concernant des fichiers dans $DST (une machine distante et non un répertoire locale). Je suis donc passé d'un script qui "poussait" sa sauvegarde à un "tirant" sa sauvegarde.
    effectivement j'avais omis cet aspect là, logrotater un fichier distant à mon avis ça ne fonctionne pas, par contre rien n'empêche de lancer le logrotate sur la machine destination directement via ssh

    Comment faire pour que la configuration concerne tous les dossiers et sous-dossier?
    il n'y a pas d'option pour faire en récursif, au mieux tu as des wildcards et la possibilité de spécifier plusieurs chemins séparés par des virgules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /home/rorschach2/destination/*/fichier_a_faire_tourner,/home/rorschach2/destination/*/*/*/*/*.extensions_a_prendre_en_compte {
       missingok
       rotate 4
       (...)
    après ce n'était qu'une suggestion, peut-être que logrotate ne correspond finalement pas tant que ça à ton besoin, auquel cas t'es bon pour recoder une moulinette qui fera plus ou moins la même chose

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    après ce n'était qu'une suggestion, peut-être que logrotate ne correspond finalement pas tant que ça à ton besoin, auquel cas t'es bon pour recoder une moulinette qui fera plus ou moins la même chose
    C'est ce que j'aimerai bien éviter: ça va me prendre pas mal de temps (quasiment pas fait de bash ces dernières années).

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Finalement j'ai codé une moulinette avec un suffix numérique.

    Merci pour la découverte de logrotate.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion des backups RMAN avec rétention multiple
    Par Juniper01 dans le forum Recovery Manager
    Réponses: 1
    Dernier message: 21/01/2009, 18h05
  2. Configurer samba pour la gestion des backups
    Par ferradji dans le forum Réseau
    Réponses: 5
    Dernier message: 12/08/2006, 09h45
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo