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

Linux Discussion :

Problème Algorithmique pour Script Backup


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut Problème Algorithmique pour Script Backup
    BOnjour à tous, je code actuellment un script en shell (.sh) pour sauvegarder des dossiers, mais mopn souci est que je n'arrive pas à comparer les fichiers sauvegarder et ceux à sauvegarder pour savoir s'il y a eu modification ou non.
    Je cherche donc une solution à mon probleme donc si quelqu'un à une idée pour m'aiguiller ... je suis preneur.

    Merci

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    man diff

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut
    je n'ai pas demander qu'on me balance une commande ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut
    j'ai exécute le script de al1 24 savefile.ksh et il me return une erreur
    ./savefile.sh : line 86: return: can only `return`from a function or sourced script.
    si quelqu'un a une idée d'ou ca peut venir

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    C'est très bien de chercher à faire les choses par soi-même. Cela dit, sur la question de la synchronisation des fichiers, il y a d'excellents logiciels pour le faire : le plus connu est rsync.
    Si tu veux comparer les dates de dernières modifications, il faut regarder du coté de "ls".
    Si tu veux comparer le contenu des fichier, diff ne me parait pas le bon choix. Il me semble plus efficace de faire un md5 du contenu du fichier et de le comparer au md5 de l'autre. si les deux sont égaux, ils sont identiques.

    Quant à ton erreur, j'ai peur que personne ne te réponde. D'une part parce qu'on ne sait ce qu'il y a dans ton script, et d'autre part parce que déboguer les scripts shells des autres est très ennuyeux. Le mieux que tu ait à faire, pour moi, c'est de mettre un -x après ton #!/bin/sh histoire de voir ou ça part en vrille.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut
    merci pour ta réponse je vais choisir la solution la plus adaptée a mes besoins, j'ai donc changé mon code et réutiliser celui de al1 24. je vous donne donc le code.Maintenant j'ai une erreur qui signifie qu'il y a un souci au niveua du 1er IF mais je ne trouve pas pourquoi puisque mon fichier source existe bien et que mes 2 variables on bien leur parametre.

    #! /bin/sh
    typeset RepBackup="./backup" ;
    typeset RepSource="./Test" ;

    #Date du jour
    typeset date=$(date +%d%m%y-%H%M);
    echo "La date d aujourd'hui est :" = $date

    # Si les paramètres de RepBackup et RepSource sont renseignés et la source existe
    if [[ -n "${RepSource}" ]] && [[ -n "${RepBackup}" ]] && [[ -e "${RepSource}" ]] ;
    then
    # Si les fichiers sont différents
    if ! [[ "${RepSource}" -ef "${RepBackup}" ]] ;
    then
    # Si RepBackup existe déjà
    if [[ -e "${RepBackup}" ]] ;
    then
    # Extraire les parties
    typeset _FileExt="${RepBackup##*.}" ;
    typeset_FileName="${RepBackup%.*}" ;

    # Préparer les noms de fichier
    typeset _AddExt=$("${Date}" d "${_SaveFile}") ;
    typeset _TempFile="${_FileName}.${_AddExt}.${_FileExt}" ;

    # Si une sauvegarde existe déjà
    if [[ -e "${_TempFile}" ]] ;
    then
    # Renommer la sauvegarde existante
    _AddExt=$("${Date}" t "${_TempFile}")

    mv "${_TempFile}" "${_FileName}.${_AddExt}.${_FileExt}" || return $?
    else echo "sauvegarde deja existante"
    fi
    # Renommer le fichier à sauvegarder
    mv "${_SaveFile}" "${_TempFile}" || return $?
    else echo "repertoire backup n existe pas"
    fi
    # Enregistrer la nouvelle version
    mv "${_SrcFile}" "${_SaveFile}" || return $?
    else
    return 0
    fi
    else
    echo "erreur du 1er IF"
    fi
    exit 0

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2015, 18h32
  2. problème algorithmique difficile pour moi
    Par torjancss dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 24/05/2014, 12h49
  3. Réponses: 12
    Dernier message: 02/02/2013, 00h14
  4. [débutant] [BASH] problème script backup
    Par julien.63 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/04/2008, 18h56
  5. aides pour script en shell
    Par komatek dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 12/08/2003, 15h36

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