← retour aux snippets

ts: horodater la sortie d'un pipeline

Ajouter des timestamps en tête de lignes d'un flux pour faciliter le debug et la corrélation.

objectif

Tracer temporellement des logs ou sorties de commandes sans modifier les programmes émetteurs.

code minimal

# préfixer chaque ligne par une date ISO
some_command | ts '%Y-%m-%dT%H:%M:%S'

utilisation

# couleur + horodatage
tail -f /var/log/syslog | ts '%H:%M:%S' | sed -e 's/^/\x1b[36m/' -e 's/$/\x1b[0m/'

# horodatage relatif depuis le début
make 2>&1 | ts -r

variante(s) utile(s)

# écrire dans un log avec timestamps
myjob | ts '%F %T' >> /var/log/myjob.log

notes

  • ts appartient à moreutils; installez le paquet correspondant.
  • préférez ISO 8601 pour une interprétation sans ambiguïté.
  • pour des performances élevées, évitez des filtres coûteux dans la boucle.