Rechercher : dans
Par :

[Shell Unix] Ecrire dans un fichier de log

Dernière réponse le 16 fév 2007 à 13:37:44 Trezeg, le 16 fév 2007 à 10:56:09 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais pouvoir écrire dans un seul fichier de log mais à partir de plusieurs shells. Je m'explique :
Mon premier script fait ceci :

LOGFILE=`date +%Y%m%d`.MonLog
echo "coucou" | tee -a $LOGFILE
export LOGFILE
Et mon second fait cela :
echo "salut" | tee -a $LOGFILE
Le problème est qu'il n'arrive pas à écrire dans le meme fichier de log (alors que j'ai fait l'export nécessaire, à la sortie du premier script).
Merci m'éclairer sur ce point.

Cdlt,

Trez
Configuration: Sun OS 5.9

Meilleures réponses pour « [Shell Unix] Ecrire dans un fichier de log » dans :
[Shell] Créer un fichier vide VoirPour créer un fichier vide, il vous suffit de taper la commande suivante : > fichier Vous pouvez également utiliser la commande touch : touch fichier
[Python] Lire et écrire des fichiers CSV VoirLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce sujet, mais uniquement...
[Shell] Transferer des fichiers via ssh VoirSSH - Secure SHell Utilisation Informations complémentaires LOGICIELS Sous Linux/Unix Sous Windows Avertissement Utilisation SSH permet d'utiliser des pipelines de commandes, et d'utiliser des tubes d'entrées/sorties comme toute...
UNIX - Les fichiers VoirIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...

1

jipicy, le 16 fév 2007 à 12:10:39

Salut,

Bizarre ;-\

jp@MDK:~/tmpfs ssh$ LOGFILE=`date +%Y%m%d`.MonLog
jp@MDK:~/tmpfs ssh$ echo $LOGFILE
20070216.MonLog
jp@MDK:~/tmpfs ssh$ echo "coucou" | tee -a $LOGFILE
coucou
jp@MDK:~/tmpfs ssh$ cat 20070216.MonLog
coucou
jp@MDK:~/tmpfs ssh$ export LOGFILE
jp@MDK:~/tmpfs ssh$ echo "salut" | tee -a $LOGFILE
salut
jp@MDK:~/tmpfs ssh$ cat 20070216.MonLog
coucou
salut
jp@MDK:~/tmpfs ssh$
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

lami20j, le 16 fév 2007 à 12:16:31

Salut,

Peut être qu'il n'exécute pas le script depuis le même emplacement.
Pourquoi pas utiliser un chemin absolu dans la variable? lami20j

Répondre à lami20j

3

 Trezeg, le 16 fév 2007 à 13:37:44

Hello,
Le script n'est effectivement pas effectué à partir du meme emplacement. Cela dit, j'ai préalablement créé un fichier contenant des variables d'environnement dans lequel il y a

$ cat monEnv
$ LOGDIR=/opt/app/log
A noter que ce fichier est appelé dans mon .profile.
Mon premier script a en réalité cette tronche :
#!/bin/ksh
#!/bin/bash
. monEnv
LOGFILE=`date +%Y%m%d`.MonLog
echo "coucou" | tee -a $LOGDIR$LOGFILE
export LOGFILE
Et mon second (qui je lance d'un répertoire différent) :
echo "salut" | tee -a $LOGDIR$LOGFILE
Je lance mes scripts de la manière suivante :
. script
Voilou...

Répondre à Trezeg