lsof - idade do arquivo

8

O comando * nix lsoffornece uma lista de arquivos abertos. Alguém está ciente de uma maneira que também listaria por quanto tempo um arquivo específico foi aberto? Ou usando lsofou qualquer outro comando. Estou usando o CentOS 5.3 e, infelizmente, não consigo instalar repositórios adicionais, portanto tenho que trabalhar com os repositórios padrão do CentOS.

obrigado

Kevin
fonte
1
Por que você precisa daquilo? Eu tenho atualmente nenhuma idéia de como conseguir isso com qualquer um lsofou qualquer outro utils, então talvez haja uma solução alternativa para o problema ...
plaes
Há um problema específico do aplicativo (interno) e um de nossos processos é manter um arquivo aberto, mas não consigo determinar se ele faz isso toda vez que é chamado, portanto, eu gostaria de ver a idade de cada arquivo aberto, ou seja, arquivo1 está aberto desde 01-01-2012 00:00:00, arquivo2 está aberto desde 02-01-2012 00:00:00 etc.
2
Há duas coisas que eu poderia pensar: strace -e open,close programou valgrindcom a --track-fds=yesopção.
plaes

Respostas:

3

Se você possui o pid, pode verificar diretamente em / proc / $ pid / fd. Ele parece estar onde descritores de arquivos são criados.

Se você der uma olhada simples na data de criação ls -lh, talvez seja possível saber quanto tempo um arquivo específico está aberto.

Coren
fonte
0

Um - palpite não muito exato - poderia ser usar o pid fornecido por lsofe psdescobrir para quando o programa que abriu o arquivo está sendo executado. Obviamente, isso funciona apenas para arquivos abertos no início do programa, não para arquivos abertos posteriormente.

arnep
fonte