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.

Amelio Vazquez-Reina
la source

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
larsks
la source
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.

terdon
la source