44 votes

"regarder" la sortie d'une commande jusqu'à ce qu'une chaîne particulière soit observée, puis quitter

Je cherche un moyen de surveiller de manière programmatique la sortie d'une commande jusqu'à ce qu'une chaîne particulière soit observée, puis de quitter. C'est très similaire à cette question, mais au lieu de suivre un fichier, je veux 'suivre' une commande.

Quelque chose comme:

watch -n1 my_cmd | grep -m 1 "Chaîne que je cherche"

(Mais cela ne fonctionne pas pour moi.)

MISE À JOUR: Je tiens à préciser que 'my_cmd' ne produit pas de texte en continu mais doit être appelé de manière répétée jusqu'à ce que la chaîne soit trouvée (c'est pourquoi j'ai pensé à la commande 'watch'). À cet égard, 'my_cmd' est comme beaucoup d'autres commandes Unix telles que : ps, ls, lsof, last, etc.

0voto

Pour regarder la sortie sans la modifier, et avec une temporisation, vous pouvez utiliser une application micro Python "waitforoutput".

pip install waitforoutput
waitforoutput 'Chaîne que je recherche' --commande 'watch my_cmd' --timeout 10

Sur le README officiel, il y a une explication plus détaillée du comportement: https://pypi.org/project/waitforoutput/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X