GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere un timestamp al registro degli script bash?

Soluzione 1:

Puoi reindirizzare l'output dello script attraverso un ciclo che antepone la data e l'ora correnti:

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

Se lo userai molto, è facile creare una funzione bash per gestire il ciclo:

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

Soluzione 2:

Vedi ts da Ubuntu moreutils pacchetto:

command | ts

Oppure, se $command esegue il buffering automatico (richiede expect-dev pacchetto):

unbuffer command | ts

Soluzione 3:

La data comando fornirà tali informazioni

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

quindi puoi

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

è quello che volevi?

Soluzione 4:

Puoi semplicemente fare eco il comando restituisce il file di registro. cioè

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

Funziona davvero :)

Esempio:

[[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]]$ 

Soluzione 5:

Crea un config.sh file

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

Quando hai bisogno di inviare al file di log usa

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

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

do_what_you_want >> $LOGFILE

Il file di registro sarà simile a

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

Quindi sarà facile ordinare per data


Linux
  1. Come eseguire il debug di uno script Bash?

  2. Come aggiungere un utente Unix/linux in uno script Bash?

  3. Come aggiungere nuove righe nelle variabili in Bash Script?

  4. Come impostare i parametri quando Pipe Bash Script su Bash?

  5. Come chiamare una funzione Bash nello script Bash all'interno di Awk?

Come eseguire uno script Bash {7 metodi}

Come scrivere uno script Bash con esempi

Come abilitare il timestamp nella cronologia di Bash in Linux

Come utilizzare il comando Date negli script Bash in Linux

Come eseguire uno script Bash

Come eseguire uno script bash?