# [SHELL] tail -f + grep ? (résolu)

## RaX

Bonjour,

Je voulais savoir comment faire pour filtrer l'affiche d'un tail -f.

genre je fait:

# tail -f /var/log/messages

mais je voudrai n'avoir que les lignes contenant "sshd". Tout ça bien sûr actualisé en temps réel (d'ou le tail -f).

Merci.Last edited by RaX on Fri Jun 05, 2009 12:03 pm; edited 1 time in total

----------

## Link31

```
tail -f /var/log/messages | grep sshd
```

----------

## razer

la même sans tubes, car il parait que cépabien pour greper :

```
grep sshd $(tail -f /var/log/messages)
```

----------

## RaX

Merci c'est ske j'av fait dans un script et ça marchait pas j'avais sensiblement la même chose que vous mais je c pas pk ça voulais pas.

Chui qu'une m...  :Smile: 

Merci.

----------

## RaX

En fait ça marche pas pour mon exemple quand me connect en ssh si je fait un "tail -f" je vois bien:

luna ~ # tail -f /var/log/messages

May 31 18:26:29 luna sshd[30417]: Accepted publickey for root from 192.168.0.1 port 40017 ssh2

May 31 18:26:29 luna sshd[30417]: pam_unix(sshd:session): session opened for user root by (uid=0)

Par contre:

luna ~ # grep sshd $(tail -f /var/log/messages)

n'affiche rien :s

----------

## xaviermiller

 *razer wrote:*   

> la même sans tubes, car il parait que cépabien pour greper :
> 
> ```
> grep sshd $(tail -f /var/log/messages)
> ```
> ...

 

Et c'y t'y ferait pas un pipe dans notre dos (roh, c'est du bash...)

----------

## dapsaille

XavierMiller le sauveur de chatons    :Laughing: 

----------

## geekounet

 *razer wrote:*   

> la même sans tubes, car il parait que cépabien pour greper :
> 
> ```
> grep sshd $(tail -f /var/log/messages)
> ```
> ...

 

Non, ça ne peut pas fonctionner, là tu donnes les messages comme si c'était des noms de fichiers à grepper avec ça, et ça ne sortirai un résultat que lorsque tail s'arrêterai, pour passer la main à grep ensuite. Et personne n'a dit que piper un grep était mal, faut juste le faire quand c'est approprié, ce qui est le cas ici, donc la proposition de Link31 est la bonne.  :Smile: 

Le cas souvent critiqué de pipe inutile, c'est quand on fait un cat toto.txt|grep foobar, parce que là on peut donner le fichier à grepper peut être donné directement à grep (par contre ça gagne un intérêt de garder le cat s'il faut concaténer (ce qui est le but de catenate) plusieurs fichiers, même si en fait ya toujours le grep -H qui est utile dans ce cas ci, mais bref...). Et par contre ici dans le cas présent, ya un intérêt à piper le tail sur grep, parce que tail sort le contenu petit à petit, et grep fait son boulot au fur et à mesure en affichant directement le résultat.

----------

## RaX

Merci a tous. Je m'excuse pour cette question un peu stupide, j'aurai vérifier la syntaxe du script je  ne vous aurais pas embêter avec cette chose basique.

----------

