So starten Sie das Tailing einer noch nicht erstellten Datei


12

Ich verwende taildiese Option, um den Fortschritt von Jobs zu überwachen, von denen ich weiß, dass sie ihren Fortschritt auf die Festplatte schreiben. Fast immer weiß ich, welche Datei sie erstellen, bevor sie ausgeführt werden (die Jobs werden von einem Scheduler auf einem Supercomputer verteilt).

Gibt es einen Weg zu taildiesen Dateien, bevor sie erstellt werden? Ich möchte dies tun, während ich die Rennbedingungen vermeide und / oder Annahmen darüber mache, wie oder wann die Jobs auf die Festplatte schreiben.

Antworten:


13

Verwenden Sie die -FFlagge, um abzuschließen (vorausgesetzt, Sie haben tailvon GNU Coreutils):

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

Von 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

Wenn Ihre tailImplementierung nicht über die --retryOption verfügt, können Sie die Datei wahrscheinlich einfach betrügen und selbst erstellen:

$ touch file && tail-f file

Abhängig von Ihren Anforderungen in Bezug auf Eigentumsrechte und Berechtigungen kann dies ausreichend sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.