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 :

Associer la variable i avec plus chemins


Sujet :

Linux

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    En plus, après ca, je vais devoir intégrer l'option de la récurcivité dans une question, avec un pipe je pense.

  2. #22
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    Maintenant j'ai plus de message d'erreur mais rien ne se passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    backup -start
    Starting RSYNC...
    RSYNC finished.
    Dans la boucle, rajoute un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $rsync $OPTIONS $dest
    histoire de suivre se qui devrait se passer
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Normal que ca ne marche pas, j'ai pas mis de source

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $rsync $OPTIONS $dest
    il ne va pas chercher les chemin sources.

    Dans le man:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsync [OPTION]... SRC [SRC]... DEST

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    J'ai séparé les chemins, pour les mettres dans un fichier seul et non plus à la fin du fichier de conf.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in $(awk ~/rsync/backup_src); do
     $rsync $OPTIONS $i $dest
    done
    Est-ce que je dois rajouter des options ou autres à awk, ou est-ce la bonne syntaxe?
    Pourtant ca ne devrai pas etre difficil de traiter chaque ligne pour le meme programme (en l'occurence, ici rsync).


    Merci pour toutes vos aides.

  5. #25
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    J'ai séparé les chemins, pour les mettres dans un fichier seul et non plus à la fin du fichier de conf.
    Soit ...

    Citation Envoyé par paco69
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in $(awk ~/rsync/backup_src); do
     $rsync $OPTIONS $i $dest
    done
    Est-ce que je dois rajouter des options ou autres à awk, ou est-ce la bonne syntaxe?
    Pourtant ca ne devrai pas etre difficil de traiter chaque ligne pour le meme programme (en l'occurence, ici rsync).
    Ce n'est pas difficile. Si ton fichier est à présent séparé, s'il ne contient que des chemins, s'il n'y en a qu'un par ligne, un simple traitement comme ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in $(cat ~/rsync/backup_src); do
     $rsync $OPTIONS $i $dest
    done
    Il vaut mieux réserver awk, dont la syntaxe n'est pas forcément naturelle, pour des traitements plus complexes où il peut donner toute la mesure de sa puissance .
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Le fichier "backup_src" remplit toutes tes conditions:
    Si ton fichier est à présent séparé, s'il ne contient que des chemins, s'il n'y en a qu'un par ligne
    Encore un message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Starting RSYNC...
    /root/rsync/start: line 8: /home/paco/backup/: is a directory
    /root/rsync/start: line 8: /home/paco/rsync/: is a directory
    /root/rsync/start: line 8: /home/paco/centos/: is a directory
    /root/rsync/start: line 8: /home/paco/test/: is a directory
    /root/rsync/start: line 8: /home/paco/test1/: is a directory
    RSYNC finished.
    La 'line 8' concerne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rsync $OPTIONS $i $dest
    Je pense qu'il faut regarder ds les options, enfin, je pense.

  7. #27
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    Je pense qu'il faut regarder ds les options, enfin, je pense.
    Certainement L'option -r est même probablement celle qui t'intéresse.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    On m'a demandé de mettre cette option dans une question, genre dans un pipe.
    Mais je viens d'essayer avec l'option, et idem, meme message d'erreur.

  9. #29
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    On m'a demandé de mettre cette option dans une question, genre dans un pipe.
    Je ne vois pas ce qu'un pipe peut apporter, notamment vis à vis d'une éventuelle question ...

    Passons, on réglera ça plus tard.

    Citation Envoyé par paco69
    Mais je viens d'essayer avec l'option, et idem, meme message d'erreur.
    Si l'on veut arrêter de jouer aux devinettes, il va falloir nous en dire un peu plus

    Peux tu nous mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $rsync $OPTIONS $i $dest
    juste après ta ligne 8, et nous en copier le résultat, que l'on voie ce qui est effectivement lancé et avec quelles options ?
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Voilà le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Starting RSYNC...
    /root/rsync/start: line 8: /home/paco/test: is a directory
    /home/paco/test
    /root/rsync/start: line 8: /home/paco/test1: is a directory
    /home/paco/test1
    RSYNC finished.
    Dans mon fichier de conf, j'ai comme options:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # options de rsync
    export OPTIONS="-v --archive --compress --force --backup --backup-dir=$dest/'hostname'-$INCREMENTDIR"
    Si, dans mon fichier 'backup_src', je rajoute *, par ex: /home/paco/test/* à la place de /home/paco/test, voila ce que cela me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Starting RSYNC...
    /root/rsync/start: line 8: /home/paco/test/rhel-rg-en.pdf: Permission non accordée
    /home/paco/test/rhel-rg-en.pdf
    /root/rsync/start: line 8: /home/paco/test/rhel-sag-en.pdf: Permission non accordée
    /home/paco/test/rhel-sag-en.pdf
    /root/rsync/start: line 8: /home/paco/test1/bash-3.1: is a directory
    /home/paco/test1/bash-3.1
    RSYNC finished.

  11. #31
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    A l'évidence, tes variables d'environnement $rsync et tout le toutim ne sont pas correctement renseignées.

    Les valeurs issues de ton fichier de conf ne sont pas prises en compte, soit parceque celui-ci n'a pas été "sourcé" (exécuté depuis le script), soit car ta méthode de récupération des valeurs n'est pas bonne.

    Il semble qu'une seule variable soit correctement récupérée : celle qui vient de ta liste de chemins. Ce n'est pas suffisant comme commande et l'interpréteur se plaint que c'est un répertoire, pas une commande.

    Pour en être sûr, tu peux transformer ton echo ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Bien joué, voilà ce que ca me retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Starting RSYNC...
    rsync=[] OPTIONS=[] i=[/home/paco/test/rhel-rg-en.pdf] dest=[]
    rsync=[] OPTIONS=[] i=[/home/paco/test/rhel-sag-en.pdf] dest=[]
    rsync=[] OPTIONS=[] i=[/home/paco/test1/bash-3.1] dest=[]
    RSYNC finished.
    T'avais vu juste, seul la variable du chemin est pris en compte.

  13. #33
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    ... seul la variable du chemin est pris en compte.
    Comment est fait le chargement de la conf ?

    Le mieux, si ton fichier de conf est un shell tout ce qu'il y a de plus classique (instructions shell et commentaires, commençant par un shebang), c'est de faire un dans ton script principal pour le charger.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    En gros, y'a un soucis soit dans le fichier de conf avec 'export' soit dans le fichier...ah bah tiens, une question: dans quel fichier je dois mettre 'export PATH=$PATH:~/rsync'? dans .bashrc ou .bash_profile?

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Ce n'est pas un script, c'est juste un fichier nommé 'backup.conf'. Il se trouve au début du topic.
    Je voulais juste mettre les variables du fichier de conf en variables globales, avec l'export.

  16. #36
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par paco69
    Ce n'est pas un script, c'est juste un fichier nommé 'backup.conf'. Il se trouve au début du topic.
    Je voulais juste mettre les variables du fichier de conf en variables globales, avec l'export.
    Justement, fais en sorte que ton fichier de conf soit comme un script (shebang, droits d'exécution) et dans ton script principal, tu n'as qu'à faire pour que ses variables soient prises en compte dans le script.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  17. #37
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Merci bien, y'a deja du mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Starting RSYNC...
    rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test/rhel-rg-en.pdf] dest=[/home/paco/archive]
    rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test/rhel-sag-en.pdf] dest=[/home/paco/archive]
    rsync=[/usr/bin/rsync] OPTIONS=[-r -v --archive --compress --force --backup-dir=/home/paco/archive/'hostname'-2006-mar-11-jui] i=[/home/paco/test1/bash-3.1] dest=[/home/paco/archive]
    RSYNC finished.
    Mais mon dossier 'archive' ne contient rien.

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 28
    Points
    28
    Par défaut
    Il faut bien évidemment mettre en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo rsync=[$rsync] OPTIONS=[$OPTIONS] i=[$i] dest=[$dest]
    et décommenter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rsync $OPTIONS $i $dest
    et là, ca marche très bien.
    Merci beaucoup.

    Je dois faire la gestion d'erreurs dans ce meme script 'start' et le montage/démontage avec smbfs.
    Dois-je créer un nouveau topic?
    Pour la récurcivité, je ne vois pas bien l'interet d'en faire une question. Je verrai si c'est vraiment utile.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Tableau croisé avec plus de 2 variables
    Par Oreo_ dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 18/07/2014, 18h03
  2. Associé une variable avec Visual Basic
    Par dada49 dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/03/2010, 08h06
  3. objMessage.AddAttachment avec pour chemin, une variable
    Par jipechibi dans le forum VBScript
    Réponses: 3
    Dernier message: 07/10/2008, 11h24
  4. Probleme du Voyageur de Commerce, mais plus compliquée, avec des chemins interdit
    Par Midou45 dans le forum Statistiques, Data Mining et Data Science
    Réponses: 6
    Dernier message: 03/01/2008, 14h14
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 18h20

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