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 :

Redierction sortie standard


Sujet :

Linux

  1. #1
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut Redierction sortie standard
    Bonjour,

    Je voudrais créer un fichier de log lors du lancement d'un script qui effectue une multitude de tâches différentes : creation arborescence, copie fichiers, creation BD, lecture de fichiers et generation de fichiers resultats, remplissage de la BD et quelques petites autres choses.

    Le script se lance avce plusieurs arguments dont le nom du répertoire dans lequel je vais copier et créer des fichiers.

    Je voudrais créer un fichier de log dans le répertoire que je crée (dont le nom est passé en argument). Le problème est que si je le fait comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    creation.sh REP >> /home/REP/File.log
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    creation.sh REP | tee /home/REP/File.log
    cela ne marche pas car le repertoire n'existe pas encore, donc le fichier ne peut pas être créé.
    Mon script est assez long et je ne peux passer chaque ligne en ajoutant une redirection >> à chaque commande.


    Existe-t-il une commande qui permettrait de rediriger la sortie standard vers un fichier pendant l'execution de mon script?

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    ben la commande qui permet de rediriger la sortie standard vers un fichier est '>' et aussi '>>' comme tu l'as fait. Par contre, il faut juste que tu cré le répertoire de log avant, je ne vois pas ou est le problème ?

    rep=REP
    mkdir $rep
    creation.sh $rep >> /home/$rep/File.log
    Sinon, tu peux aussi enregistré les logs dans un autre répertoire ou directement dans $HOME ou dans le répertoire courant. Normalement les logs sont enregistré dans /var/log/ mais il me semble qu'il faut les droits nécessaires.

  3. #3
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Dans le déroulement, le répertoire se crée dans le script.
    Je ne peux le créer manuellement avant.

    Si je comprends bien, la seule solution dans ce cas la serait de lancer un premier script qui crée l'arborescence et ensuite appeler mon script existant en redirigeant la sortie lors de cet appel.

  4. #4
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Tu peux aussi très bien avoir un répertoire pour les les logs de ton application qui ne se trouve pas dans le répertoire qui va être créé. C'est même mieux si tu ne sait pas quel répertoire va être créé, autant avoir les logs toujorus dans le même répertoire. Le nom du répertoire créé sera dans le log.

    par exemple

    dirlog=$HOME/monappli/logs
    mkdir -p $dirlog
    logf=${dirlog}/Monappli_$(date +%F_%k:%M:%S).log
    touch $logf
    creation.sh REP > $logf

  5. #5
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Dans mon cahier des charges, les fichiers de log doivent se trouver dans le repertoire que je crée, donc pas de possibilité de définir un répertoire dédié aux fichiers de log.

    Dans tous les cas, merci pour tes précisions, je pense que je vais créer un petit script d'initialisation qui créera les rep et les fichiers log et ensuite lancer mon "appli".

    Bye bye

    Mat

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

Discussions similaires

  1. PB sortie standard avec les PTHREAD !!!
    Par djspit dans le forum C++
    Réponses: 15
    Dernier message: 19/11/2004, 01h17
  2. [langage] sortie standard linux
    Par ebaynaud dans le forum Langage
    Réponses: 8
    Dernier message: 14/10/2004, 08h05
  3. rediriger la sortie standard vers un textarea
    Par gromite dans le forum Composants
    Réponses: 9
    Dernier message: 10/05/2004, 11h07
  4. Réponses: 5
    Dernier message: 24/12/2003, 09h49
  5. Réponses: 16
    Dernier message: 18/07/2003, 17h16

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