Les Allergies
Alimentaires
Posez votre question Signaler

BASH date heure dans redirection d'erreur

sbouli 171Messages postés 20 décembre 2007Date d'inscription 13 décembre 2011Dernière intervention - Dernière réponse le 27 oct. 2008 à 23:08
Bonjour,
Lors de l'appel des mes script, je redirige la sortie d'erreur vers un fichier
/toto.sh 2>>/chemin/erreurs_toto.logs
Comment pourrais-je avoir une date_heure ajoutée automatiquement lors des ajouts dans le fichier erreurs_toto.logs ?
En vous remerciant.
Stéphane
Lire la suite 

BASH date heure dans redirection d'erreur »

8 réponses
Réponse
+1
moins plus
hello
/toto.sh 2>&1 | awk ' {system("date");print $0}' >>/chemin/erreurs_toto.logs
sbouli- 27 oct. 2008 à 18:42
bonjour,

ça me parait être la bonne voie, cependant j'ai l'erreur suivante :

-bash: awk{system("date");print $0}: command not found

avec la commande :

/chemin/super_script.sh >/dev/null 2>&1 | awk'{system("date");print $0}'>>/chemin/erreurs_super_script.log


AU SECOURS ....

Stéphane
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

1. dans le script
lami20j@debian:~/trash$ cat ccm.sh
#!/bin/bash

echo -e "$(date); \c"
echo salut
lami20j@debian:~/trash$ sh ccm.sh >> erreur.log
lami20j@debian:~/trash$ cat erreur.log
lundi 27 octobre 2008, 18:46:31 (UTC+0100); salut
lami20j@debian:~/trash$
2. avec awk
lami20j@debian:~/trash$ cat ccm.sh
#!/bin/bash
echo salut
lami20j@debian:~/trash$ cat erreur.log
lundi 27 octobre 2008, 18:46:31 (UTC+0100); salut
lami20j@debian:~/trash$ sh ccm.sh|awk ' {system("date");print $0}' >> erreur.log
lami20j@debian:~/trash$ cat erreur.log
lundi 27 octobre 2008, 18:46:31 (UTC+0100); salut
lundi 27 octobre 2008, 18:49:12 (UTC+0100)
salut


Ajouter un commentaire
Réponse
+1
moins plus
En combinant vos 2 réponses, j'ai compris mon erreur, il manquait un espace .. entre 'et { :

/chemin/super_script.sh >/dev/null 2>&1 | awk ' {system("date");print $0}'>>/chemin/erreurs_super_script.log


Pour répondre à lami20j, ta solution correspond à récupérer le stout, ce qui ne m'interresse pas ! d'où le >/dev/null
Seules les erreurs m'interessent. Par contre si je souhaite débugger mon script, je remet le stout dans la console et je vois le déroulement avant les erreurs.

Ce système permet de visualiser d'un coup d'oeil les erreurs et seulement les erreurs dans le log !

Merci à tous les 2 !!

Stéphane
lami20j- 27 oct. 2008 à 23:08
Re,

Ah, d'accord, je n'ai pas vu que seulement STDERR t'intéresse ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

tu ajoutes au début de ton script
echo -e "$(date)\c"
--
106485010510997108
Ajouter un commentaire
Réponse
+0
moins plus
bonjour lami20j,

Je comprend bien que :

echo -e "$(date)\c"


Ajouterais la date à la sortie standard mais moi je veux ajouter la date heure dans le fichier d'erreur ... lors de la redirection d'une erreur.

Je veux avoir la date heure de chaque erreur, tu noterras le double >> dans ma redirection pour conserver une trace des erreurs ...

Merci d'avance.

Stéphane
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

ben si tu ajoutes la commande à l'intérieur de ton script (au début)
STDOUT grâce à >> sera écrit dans le fichier et pas sur écran
#!/bin/bash

echo -e "$(date)\c"

# ton code
--
106485010510997108
Ajouter un commentaire
Ce document intitulé « BASH date heure dans redirection d'erreur » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?