monitora arquivos de processos abertos no linux (tempo real)

8

Os arquivos abertos pelo processo XYZ podem ser encontrados com o comando

ls -l /proc/PID/fd

Existe alguma maneira que possa ser feita de forma mais interativa, como tail atualização automática a cada x segundos?

Obrigado.

    
por Frankie 06.01.2011 / 10:27

3 respostas

14

Experimente o comando watch :

watch -n 10 ls -l /proc/$$/fd

O relógio é legal.

Você pode usar uma antiga escola enquanto loop:

while :
do
 ls -l /proc/$$/fd
 sleep 10
done

watch está no pacote procps em sistemas baseados no debian e no procps rpm em sistemas derivados do RedHat.

    
por 06.01.2011 / 10:33
3

Você pode combinar lsof e watch .

Por exemplo, watch "lsof -p 1234" lhe dará uma lista de todos os arquivos abertos do pid 1234 a cada 2 segundos. Você pode alterar alguns parâmetros para atender às suas necessidades.

    
por 06.01.2011 / 10:35
3

Se você quiser ver cada arquivo à medida que ele é aberto, é possível filtrar isso com strace . Por exemplo:

strace -p _pid_of_app_ -e trace=open,close
    
por 18.12.2013 / 12:56