GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Shell pour surveiller les changements dans un fichier

Solution 1 :

Voulez-vous dire

tail -f logfile.log

?

(Page de manuel pour la queue)

Solution 2 :

Vous vouliez probablement dire queue, selon la réponse de Jon Skeet.

Un autre utile est la montre; il vous permet d'exécuter une commande périodiquement et de voir la sortie en plein écran. Par exemple :

watch -n 10 -d ls -l /var/adm/messages

Exécutera la commande ls -l /var/adm/messages toutes les 10 secondes et mettez en surbrillance la différence de sortie entre les exécutions suivantes. (Utile pour surveiller la vitesse de croissance d'un fichier journal, par exemple).

Solution 3 :

inotifywait from inotify-tools est utile si vous souhaitez exécuter une commande à chaque fois qu'un fichier (ou tout fichier d'un répertoire) change. Par exemple :

inotifywait -r -m -e modify /var/log | 
   while read path _ file; do 
       echo $path$file modified
   done

Solution 4 :

Je préfère utiliser less +FG plus de tail -f parce que j'ai besoin de rechercher dans un fichier journal une erreur ou un ID spécifique. Si j'ai besoin de chercher quelque chose, je tape ^C pour arrêter de suivre le fichier et ? pour commencer la recherche en arrière.

Les raccourcis clavier sont à peu près les mêmes que dans vi . Toute commande peut être initialisée au démarrage en utilisant le + choix :

+cmd   Causes  the  specified  cmd  to be executed each time a new file is
       examined.  For example, +G causes less to  initially  display  each
       file starting at the end rather than the beginning.

Pour les journaux très longs, je trouve pratique d'utiliser le -n option qui désactive la numérotation des lignes. À partir de la page de manuel :

-n or --line-numbers
          Suppresses line numbers.  The default (to use line numbers)  may
          cause  less  to run more slowly in some cases, especially with a
          very large input file.  Suppressing line  numbers  with  the  -n
          option  will  avoid this problem.  Using line numbers means: the
          line number will be displayed in the verbose prompt and in the =
          command,  and the v command will pass the current line number to
          the editor (see also  the  discussion  of  LESSEDIT  in  PROMPTS
          below).

1. Chapeau à rgmarcha pour l'avoir signalé dans les commentaires.

Solution 5 :

Tail est génial ... less peut également être utilisé start less sur le fichier c'est-à-dire less myfile puis appuyez sur Shift +F . Cela a moins d'effet de queue.


Linux
  1. Lorsque nous utilisons la commande Mv, quels changements ont lieu dans le disque dur ?

  2. Dupliquer le fichier X fois dans le shell de commande ?

  3. Commande wc Linux

  4. Linux moins de commande

  5. Comment exécuter une commande à chaque fois qu'un fichier change ?

Commande Stat sous Linux

Commande source sous Linux

Comment surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Comment rediriger la sortie de la commande shell

Interface de commandes

Qu'est-ce qu'un fichier .sh ?