Comment combiner une horloge time réel avec la queue -F

Je cours toujours la tail -F pour surveiller un journal dans une window de terminal. Le journal a une date UTC au début de chaque input:

 [08-Jan-2013 16:24:22] Yo! 

Quand je regarde ma window de journal, je dois savoir quel sont les inputs. Je préférerais ne pas avoir à regarder mon horloge locale et faire les calculs. J'ai donc pensé qu'il serait cool d'avoir un affichage de l'horloge en time réel dans la window avec le passage de la tail .

Ce que je viens de faire, c'était une boucle d'arrière-plan qui faisait echo la date et un return de chariot. Lorsqu'une input de journal est écrite, la tail écrase l'horloge.

 while true; do echo -ne `date +"[%d-%b-%Y %H:%M:%S]"`"\r"; sleep 1; done & log -F /path/to/log 

Cela fonctionne essentiellement, mais je m'inquiète de ce qui se passe lorsque les sorties de la tail et de la date produisent la production en même time. Je ne veux pas que mon sharepoint vue sur le journal soit gâté par le return du chariot.

Comment puis-je multiplex ces sorties set afin qu'elles ne puissent pas entrer en collision? Est-ce un travail pour l' screen ou autre chose?

Le journal est sur un server Debian distant. Mon post de travail exécute OSX. Je me connecte via SSH pour exécuter le script ci-dessus.

2 Solutions collect form web for “Comment combiner une horloge time réel avec la queue -F”

Vous pouvez utiliser l'option -s de la queue afin que votre queue dort pendant 5 secondes:

 -s, --sleep-interval=S with -f, sleep for approximately S seconds (default 1.0) between iterations. tail -s 5 -f /var/log/messages 

Ou la command de montre vous montrera la date:

 watch --interval=5 tail /var/log/messages Every 5.0s: tail /var/log/messages Tue Jan 8 17:52:41 2013 

Jan 8 17:52:34 localhost kernel: NOUVEAU: IN = eth0 OUT = MAC = 00: 60: 56: 73: 14: 6b: 00: 50: 5b: 93: 49: 5d: 08: 00 SRC = 10.0. 0,2 DST = 10,0.0.1 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 29070 DF PROTO = TCP SPT = 50561 DPT = 25 WINDOW = 5840 RES = 0x00 SYN URGP = 0

Une autre solution (pas particulièrement agréable) utilisant la command strace-t:

  strace -t tail -f /var/log/messages 

Enfin, vous pouvez écrire votre propre command de queue modifiée dans python / perl / ruby:

https://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail

et ajoutez simplement la date / l'heure à la ligne de sortie.

Vous voudrez peut-être jeter un coup d'oeil à multitail ; il prend en charge plusieurs windows avec des files journaux séparés ou fusionnés, des coloris regex par type de file, des options d'insertion de mots, une montre de nom de file (utile pour les files enregistrés) et plus encore.

Oh, et une horloge sur la ligne d'état.

  • Comment supprimer tous les messages de la queue dans Exchange Server 2007
  • Ajouter le comportement de la queue lorsque Enter ajoute des lignes vierges à less
  • problèmes pour inspecter un file text long dans unix
  • Comment vérifier les files d'attente de pf?
  • Configuration de la valeur Heartbeat pour RabbitMQ
  • Shell basé sur la queue dans linux?
  • Utilisation de la queue -F pour la surveillance d'un énorme file
  • Si sendmail ne parvient pas à résoudre smarthost, ajoutez-vous à la queue plutôt qu'à échouer?
  • Transférer plusieurs fichiers distants
  • Les travaux de lecture / écriture peuvent-ils être mis en attente?
  • Messagerie Mac OS X Server (10.5) piégé dans la queue
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.