lsof - возраст файла

8

Команда * nix lsofвыдает список открытых файлов. Кто-нибудь знает способ, который также перечислил бы, как долго определенный файл был открыт? Либо с помощью, либо с помощью lsofлюбой другой команды. Я использую CentOS 5.3 и, к сожалению, я не могу установить дополнительные репозитории, поэтому мне придется работать со стандартными репозиториями CentOS.

Спасибо

Kevin
источник
1
Зачем тебе это надо? В настоящее время я не знаю, как этого добиться с помощью одной lsofили других утилит, так что, возможно, есть альтернативное решение вашей проблемы ...
plaes
Существует (собственная) специфическая проблема приложения, и один из наших процессов держит файл открытым, но я не могу определить, делает ли он это каждый раз, когда он вызывается, поэтому я хотел бы видеть возраст каждого открытого файла, то есть file1. открыт с 2012-01-01 00:00:00, файл2 открыт с 2012-01-02 00:00:00 и т. д.
2
Я мог бы подумать о двух вещах: strace -e open,close programили valgrindс --track-fds=yesопцией.
plaes

Ответы:

3

Если у вас есть pid, вы можете напрямую проверить в / proc / $ pid / fd. Это , кажется , чтобы быть там , где создаются дескрипторы.

Если вы просто посмотрите на дату их создания ls -lh, возможно, вы сможете узнать, как долго был открыт конкретный файл.

Корен
источник
0

A - не очень точное предположение - можно использовать pid, предоставленный lsofи, psчтобы узнать, с каких пор запускается программа, открывшая файл. Это, конечно, работает только для файлов, открытых при запуске программы, но не для открываемых позже.

arnep
источник