Obtém o caminho de arquivo aberto da saída pfiles

1

Detectamos problemas de desempenho em um processo do Solaris 10 e observamos muitas gravações no descritor 268 usando truss .

Não temos lsof em mãos, mas aqui está um extrato de pfiles output:

 [...]
 268: S_IFREG mode:0644 dev:321,11003 ino:13621 uid:101 gid:105 size:100014416
      O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE
 [...]

Existe uma maneira de saber o caminho real do arquivo a partir dessas informações?

Obrigado.

    
por fglez 14.07.2010 / 07:39

3 respostas

2

O valor ino é o inode do arquivo no sistema de arquivos, no seu caso 13621, então você pode usar a opção find 's -inum como (onde $ filesystem_name é um sistema de arquivos em seu máquina:

find /$filesystem_name -inum 13621

Os inodes são únicos por sistema de arquivos, portanto, se você tiver vários sistemas de arquivos, convém verificá-los individualmente.

Existem alguns bons scripts do dtrace na web para encontrar atividade em sistemas de arquivos:

link

    
por 14.07.2010 / 08:52
1

O caminho do arquivo deve aparecer logo após a linha que você postou. Se não estiver lá, é provável que tenha sido removido anteriormente.

    
por 14.07.2010 / 10:08
0

Você pode procurar a chamada open () que resultou no filehandle 268 e ver com que parâmetros ele foi chamado.

Eu não estou familiarizado com os detalhes do sistema de arquivos / proc do Solaris, mas / proc / fd / under linux tem uma lista de descritores de arquivos abertos e o que eles estão abrindo; se o Solaris tiver algo semelhante, isso pode ajudar.

    
por 14.07.2010 / 21:44