GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter un horodatage au journal des scripts bash ?

Solution 1 :

Vous pouvez diriger la sortie du script via une boucle qui préfixe la date et l'heure actuelles :

./script.sh | while IFS= read -r line; do printf '%s %s\n' "$(date)" "$line"; done >>/var/log/logfile

Si vous comptez beaucoup l'utiliser, il est facile de créer une fonction bash pour gérer la boucle :

adddate() {
    while IFS= read -r line; do
        printf '%s %s\n' "$(date)" "$line";
    done
}

./thisscript.sh | adddate >>/var/log/logfile
./thatscript.sh | adddate >>/var/log/logfile
./theotherscript.sh | adddate >>/var/log/logfile

Solution 2 :

Voir ts de l'Ubuntu moreutils paquet :

command | ts

Ou, si $command effectue une mise en mémoire tampon automatique (nécessite expect-dev paquet):

unbuffer command | ts

Solution 3 :

La date la commande fournira ces informations

date -u
Sat Sep 10 22:39:24 UTC 2011

donc vous pouvez

echo $(date -u) "Some message or other"

c'est ce que tu voulais ?

Solution 4 :

Vous pouvez simplement écho la commande sort dans le fichier journal. c'est-à-dire,

echo "`date -u` `./script.sh`" >> /var/log/logfile

Ça marche vraiment :)

Exemple :

[[email protected]]$ ./script.sh 
Hello Worldy
[[email protected]]$ echo "`date -u` `./script.sh`" >> logfile.txt
[[email protected]]$ cat logfile.txt 
Mon Sep 12 20:18:28 UTC 2011 Hello Worldy
[[email protected]]$ 

Solution 5 :

Faire un config.sh fichier

#!/usr/bin/env bash
LOGFILE="/path/to/log.log"
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`

Lorsque vous devez envoyer au fichier journal, utilisez

#!/usr/bin/env bash
source /path/to/config.sh

echo "$TIMESTAMP Say what you are doing" >> $LOGFILE

do_what_you_want >> $LOGFILE

Le fichier journal ressemblera à

2013-02-03 18:22:30 Say what you are doing

Il sera donc facile de trier par date


Linux
  1. Comment déboguer un script bash ?

  2. Comment ajouter un utilisateur Unix/linux dans un script bash ?

  3. Comment ajouter des nouvelles lignes dans des variables dans un script bash ?

  4. Comment définir les paramètres lorsque Pipe Bash Script to Bash ?

  5. Comment diviser une chaîne dans un script bash

Comment exécuter un script bash {7 méthodes}

Comment écrire un script bash avec des exemples

Comment activer l'horodatage dans l'historique de Bash sous Linux

Comment utiliser la commande de date dans les scripts bash sous Linux

Comment exécuter un script bash

Comment exécuter un script bash ?