truss
Ele faz um mapeamento das chamadas de sistema.
Um exemplo de aplicação dele.
Um NFS que não responde no df -k.
Precisa identificar NFS, pois o df -k não retorna.
Desta forma fazemos via truss
Exemplo do DNS não respondendo
[kairosrv:root:/:] df -k Filesystem 1024-blocks Free %Used Iused
%Iused Mounted on /dev/hd4 131072 28872 78% 3378 33% /
/dev/hd2 3538944 1071200 70% 51963 17% /usr
/dev/hd9var 131072 88040 33% 659 4% /var
/dev/hd3 524288 368164 30% 607 1% /tmp /dev/hd1 131072 123764 6% 332 2%
/home /proc - - - - - /proc /dev/hd10opt 131072 76928 42% 2343 12% /opt
... neste ponto ele ficava congelado ...
Suponhamos que eu não sei qual o FS em NFS utlizado.
Eu utilizo o truss para fazer um mapeamento:
[kairosrv:root:/:] truss df -k
execve("/usr/bin/df", 0x2FF22D48, 0x2FF22D54) argc: 2 sbrk(0x00000000)
= 0x20000C58 vmgetinfo(0x2FF21EF0, 7, 16) = 0 sbrk(0x00000000)
= 0x20000C58 sbrk(0x00000008) = 0x20000C58 __libc_sbrk(0x00000000)
= 0x20000C60 getuidx(4) = 0 . . . statfs64("/nimsrv/images", 0x2FF21AD0)
(sleeping...)
Desta forma eu sei qual está congelado e posso força-lo
[kairosrv:root:/:] umount -f /nimsrv/images forced unmount of
/nimsrv/images
Comments !