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 :

Récupérer logs traitement shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2009
    Messages : 171
    Par défaut Récupérer logs traitement shell
    Bonjour à tous,

    Je vais essayer d'expliquer au mieux mon problème.

    Je génère des traitements volumineux avec Talend pour en faire des .sh.
    Ensuite, j'execute ces .sh depuis un serveur Linux, en général depuis la crontab.
    Je peux alors, une fois le traitement terminer, avoir accès au log de ce dernier dans le fichier /var/spool/mail/user

    Mon problème est le suivant.
    Nous sommes en train de migrer sur l'environnement d'une autre équipe, et c'est cette équipe qui va lancer le script sh.
    Jusque la rien de grave.
    Mais mon problème est que je n'ai plus aucune information dans le fichier /var/spool/mail/user.

    Nous avons bien géré les logs avec Talend, cependant ils sont beaucoup moins complets que ceux fournit lors de l'execution.
    Par exemple, les erreurs retournées par la Base de données sont mieux catchées.

    Est-ce qu'il existe une possibilité pour récupérer ces logs quelque part ?
    En ajoutant une option dans le .sh par exemple ?
    Ou tout autre solution ?

    Merci d'avance et excellente journée à tous !

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    pour en faire des .sh.
    Si ce n'est pas sh mais bash, l'extension n'est pas bien choisie

    les erreurs retournées par la Base de données sont mieux catchées.
    "attrapées" ou "cachées" ?
    Attrapées par qui ? Les scripts ? La base ?
    Explique, stp.

    Est-ce qu'il existe une possibilité pour récupérer ces logs quelque part ?
    Les logs de scripts dont on ne sait rien ? Oui, probablement. En lisant les scripts et en cherchant où vont les sorties de commande. (Aussi bien pour la sortie standard que la sortie d'erreur, ou autres)

    En ajoutant une option dans le .sh par exemple ?
    Généralement, on "forke" la sortie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande | tee fichier_log.txt
    La sortie est simultanément sur l'écran et dans le fichier.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2009
    Messages : 171
    Par défaut
    Bonjour et merci bien pour la réponse !

    Talend génère des .bat pour Windows et .sh pour Linux, pas d'autres alternatives je crois

    Attrapées : on utilise des composants qui permettent d'aller taper sur la base de données.
    Maintenant, je suis bien incapable de dire si l'exception est attrapée par la base de données ou par le code java généré.

    J'ai essayé le fork, mais cela reste limité.
    Par exemple, j'ai fais exprès de faire planter mon traitement pour qu'une erreur SQL soit levée.

    Lorsque je lance le traitement depuis ma console, je vois bien l'erreur.
    En revanche, dans le fichier fichier_log.txt, je ne vois rien ://

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Précisions:
    • Le canal 0 est l'entrée standard
    • Le canal 1 est la sortie standard
    • Le canal 2 est la sortie d'erreur
    • Les canaux 3 ou + sont définis par l'utilisateur.


    Si tu veux rediriger dans des fichiers, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande >fichier_sortie.txt 2>fichier_erreurs.txt
    J'ai essayé le fork, mais cela reste limité.
    Tous les retraitements sont imaginables (filtre, modifications, mise en forme, etc).

    Exemples:
    Je vais mettre un prefixe a la ligne de sortie ou d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande > >(sed 's/^/SORTIE /') 2> >(sed 's/^/ERREUR /' >&2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ ls > >(sed 's/^/SORTIE /') 2> >(sed 's/^/ERREUR /' >&2)
    SORTIE fichier1
    SORTIE fichier2
    SORTIE fichier3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ ls  fichier_inexistant > >(sed 's/^/SORTIE /') 2> >(sed 's/^/ERREUR /' >&2)
    ERREUR ls: impossible d'accéder à 'fichier_inexistant': Aucun fichier ou dossier de ce type

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2009
    Messages : 171
    Par défaut
    Le canal 2 est la sortie d'erreur
    C'est exactement ce dont j'avais besoin, merci bien !
    Les erreurs sont remontées correctement.

    Bonne journée !

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

Discussions similaires

  1. Récupérer un objet shell (folder) sous windowsXP
    Par gateau dans le forum Tkinter
    Réponses: 10
    Dernier message: 04/01/2009, 13h16
  2. récupérer informations fichiers Shell script
    Par onet dans le forum Linux
    Réponses: 2
    Dernier message: 12/09/2008, 17h37
  3. Réponses: 17
    Dernier message: 06/03/2008, 10h47
  4. traitement shell UNIX
    Par melmouj dans le forum Linux
    Réponses: 5
    Dernier message: 23/01/2008, 23h15
  5. [JACL] Récupérer logs avec JACL
    Par Chboeuf dans le forum Websphere
    Réponses: 3
    Dernier message: 20/07/2007, 15h51

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