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 :

redirection sortie script


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Par défaut redirection sortie script
    Bonjour à tous,

    J'ai fait un petit script et maintenant, je souhaiterais en même temps afficher la sortie du script et la rediriger dans un répertoire log.txt.

    Comment puis je faire :
    J'ai regarder sur le net, et j'ai trouvé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    action1 | tee -a $LOGFILE
    action2 | tee -a $LOGFILE
    ou cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    action 1 > $LOGFILE
    action 2 >> $LOG_FILE
    N y aurait il pas une commande UNIQUE à mettre à la fin de toutes mes lignes de commande pour rediriger la sortie dans un fichier texte?

    Merci d'avance

  2. #2
    Membre émérite Avatar de freemanbubu
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 576
    Par défaut
    pour rediriger la sortie dans un fichier:

    ta_commande > sortie.txt

    (le chevron simple > créé un nouveau fichier (écrase si deja existant))

    ta_2°_commande >> sortie.txt

    (le chevron double >> écrit a la suite du fichier sans ecraser l'existant)

    voilou

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Pour compléter, > ou >> redirige la sortie standard dans un fichier (respectivement en créant systématiquement ou en complétant un fichier). Quand tu utilises > ou >>, tu ne "vois" rien de ce qui est redirigé. En revanche, avec tee, tu rediriges dans un fichier comme avec > ou >>, mais tu conserves la sortie standard. Donc avec tee, tu logues dans un fichier et ça continue à s'afficher sur la console. Tu choisis donc une solution en fonction de ce que tu veux faire.

    En shell, ce qu'il doit être possible de faire (mais à tester), c'est de définir une variable en haut du script contenant la syntaxe >, >> ou tee qui t'intéresse et de mettre cette variable à la fin de chaque commande à exécuter. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    LOGGER=">> /tmp/monfichier.log"
    ...
    commande param1 param2 $LOGGER
    L'intérêt de la variable c'est que tu peux changer la méthode de log sans avoir à modifier toutes les lignes de ton script. Mais je répète, à tester avant d'adopter

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Par défaut
    Merci pour vos réponses rapides :
    J'ai essayé la solution suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    LOGGER=">> /tmp/monfichier.log"
    ...
    commande param1 param2 $LOGGER
    Malheureusement, ca ne marche pas

    Je suis en train de me tourné vers la commande "script"

    D'autres suggestions et même solutions?

    Merci

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Salut

    Tu peux rediriger autant de lignes de commandes que tu veux avec tee.
    Il suffit de définir un bloc avec les accolades.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
    ...
    echo "trucmuch";
    ls 
    ...
    } | tee monfichierdelog
    Il faut savoir qu'il existe plusieurs descripteurs de fichiers.
    Si tu ne précises pas que tu veux rediriger le flux des erreurs vers la sortie standard, tu n'auras pas les erreurs dans tes fichiers de logs. Ce qui est pour le moins dommage.
    Il faut rajouter à la fin d'une commande pour tout récupérer.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Par défaut
    ggnore,

    Merci !

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

Discussions similaires

  1. redirection sortie script bash
    Par enseaway dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 29/06/2015, 12h32
  2. Redirection sortie standard pour script bash executé en crontab
    Par natha_poup dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 06/03/2014, 13h03
  3. Redirection sortie script chat
    Par sone47 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 27/07/2012, 16h38
  4. system et redirection sortie standard sous linux
    Par Choupinou dans le forum Linux
    Réponses: 14
    Dernier message: 11/01/2007, 23h25
  5. Redirection sortie standard - Problème encoding
    Par schniouf dans le forum Langage
    Réponses: 4
    Dernier message: 12/12/2006, 13h51

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