lsof - Alter der Datei

8

Der Befehl * nix lsofgibt Ihnen eine Liste der geöffneten Dateien. Ist jemandem ein Weg bekannt, der auch auflistet, wie lange eine bestimmte Datei geöffnet war? Entweder mit lsofoder einem anderen Befehl. Ich verwende CentOS 5.3 und kann leider keine zusätzlichen Repositorys installieren, sodass ich mit den Standard-CentOS-Repos arbeiten muss.

Vielen Dank

Kevin
quelle
1
Warum brauchst du das? Ich habe derzeit keine Ahnung, wie ich das mit einem lsofoder anderen Dienstprogrammen erreichen kann. Vielleicht gibt es eine alternative Lösung für Ihr Problem ...
plaes
Es gibt ein (internes) anwendungsspezifisches Problem, und einer unserer Prozesse besteht darin, eine Datei offen zu halten. Ich kann jedoch nicht feststellen, ob dies bei jedem Aufruf der Fall ist. Daher möchte ich das Alter jeder geöffneten Datei, dh Datei1, anzeigen ist geöffnet seit 2012-01-01 00:00:00, file2 ist geöffnet seit 2012-01-02 00:00:00 usw.
2
Es gibt zwei Dinge, an die ich denken könnte: strace -e open,close programoder valgrindmit der --track-fds=yesOption.
Plaes

Antworten:

3

Wenn Sie die PID haben, können Sie direkt in / proc / $ pid / fd einchecken . Hier werden anscheinend Dateideskriptoren erstellt.

Wenn Sie sich das Erstellungsdatum mit einem einfachen ansehen ls -lh, können Sie möglicherweise wissen, wie lange eine bestimmte Datei geöffnet war.

Coren
quelle
0

Eine - nicht sehr genaue Vermutung - könnte darin bestehen, die von bereitgestellte PID zu verwenden lsofund psherauszufinden, wann das Programm, das die Datei geöffnet hat, ausgeführt wird. Dies funktioniert natürlich nur für Dateien, die beim Programmstart geöffnet wurden, nicht für später geöffnete Dateien.

Arnep
quelle