2010-09-24 22 views
4

Je dois garantir qu'une chaîne spécifique apparaît dans un fichier journal actif, signifiant qu'une opération est en vie (alimenter ce compte en déclencheur).queue fichier - compte le nombre de lignes avec un motif donné

Considérant que je vais le faire à distance, je ne peux pas aller avec « tail -f nom de fichier » sinon il suivrait le dossier indéfiniment, donc je pense à saisir un tas de lignes dernières écrites et les compter as,

tail -n8 /var/log/service/service_V138/operations.log| grep \|DONE\| | wc -l 

Y a-t-il un meilleur moyen?

+0

Je pense que vous l'avez déjà. – karlphillip

+1

Votre «question» était la réponse la plus utile pour ma situation particulière. Merci d'avoir posé cette question et de partager ce que vous faisiez déjà! – jmort253

+1

@ jmort253, c'est pourquoi stackoverflow et ses frères et soeurs sont si utiles. Heureux que ça vous a aidé :) –

Répondre

4

Vous pouvez améliorer cela un peu, en supprimant le tube à wc et en utilisant grep -c à la place.

tail -n8 /var/log/service/service_V138/operations.log | grep -c \|DONE\| 
+0

Merci. Mon doute principal était s'il y avait une méthode alternative pour suivre le fichier pendant quelques secondes avant de se déconnecter, garantissant que le fichier était activement écrit, n'a tout simplement pas la chaîne donnée. –

+0

queue -f -n + 1 apache-tomcat-7.0.63/logs/localhost_access_log.2017-01-29.txt | grep -c lenskart ne fonctionne pas pour moi. Une idée? – sampopes

1

moins + F -N somelogfile.log? Modèle simple et facile

+0

Suite au journal, en insérant une pause dans le script, et en alimentant le conn SSH avec un 'CTRL + C' quelques secondes plus tard, à droite? –