Comment commencer à suivre un fichier qui n'a pas encore été créé


12

J'utilise tailpour surveiller la progression des travaux dont je sais qu'ils vont écrire leur progression sur le disque. Presque toujours, je sais quel fichier ils vont créer avant de commencer à s'exécuter (les jobs sont envoyés par un ordonnanceur sur un supercalculateur)

Existe-t-il un moyen d'accéder à tailces fichiers avant leur création? Je voudrais le faire tout en évitant les conditions de concurrence et / ou en faisant des hypothèses sur la façon ou le moment où les tâches écrivent sur le disque.

Réponses:


13

Utilisez le -Fdrapeau pour suivre (en supposant que vous avez tailde GNU coreutils):

tail -F file-that-does-not-exist

De man tail:

   -F     same as --follow=name --retry
   --retry
          keep trying to open a file even when it is or becomes inaccessi
          ble; useful when following by name, i.e., with --follow=name
   -f, --follow[={name|descriptor}]
          output appended data as the file grows; -f, --follow, and --fol
          low=descriptor are equivalent

3

Si votre tailimplémentation n'a pas l' --retryoption, vous pourriez probablement tricher et créer le fichier vous-même:

$ touch file && tail-f file

Selon vos besoins en matière de propriété et d'autorisations, cela peut être suffisant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.