Comando Lsof, Comprobar ficheros abiertos.
La propia palabra Lsof ya nos dice lo que hace, «LS Open Files» . Nos ayuda a listar ficheros abiertos, y nos será super útil en determinadas situaciónes donde no sepamos qué carpetas tiene en uso una determinada herramienta.
1 – Ejecutándolo sin más, nos da una lista de los procesos activos y los ficheros usados:
nexolinux m3t4g4m3 # lsof COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 8,1 4096 2 / init 1 root txt REG 8,1 124704 917562 /sbin/init init 1 root 0u CHR 1,3 0t0 4369 /dev/null init 1 root 1u CHR 1,3 0t0 4369 /dev/null init 1 root 2u CHR 1,3 0t0 4369 /dev/null init 1 root 3r FIFO 0,8 0t0 6323 pipe
2- Podemos usarlo para saber qué procesos tiene cogidos un fichero:
nexolinux m3t4g4m3 # lsof /var/log/syslog
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 488 syslog 1w REG 8,1 1151 268940 /var/log/sysloge
3 – Listar ficheros abiertos en un directorio ( +D directorio )
nexolinux m3t4g4m3 # lsof +D /var/log/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 488 syslog 1w REG 8,1 1151 268940 /var/log/syslog rsyslogd 488 syslog 2w REG 8,1 2405 269616 /var/log/auth.log console-k 144 root 9w REG 8,1 10871 269369 /var/log/ConsoleKit/history
4 – Listar ficheros abiertos basados en procesos ( -c proceso )
nexolinux m3t4g4m3 # lsof -c ssh COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ssh-agent 1528 lakshmanan 1u CHR 1,3 0t0 4369 /dev/null ssh-agent 1528 lakshmanan 2u CHR 1,3 0t0 4369 /dev/null ssh-agent 1528 lakshmanan 3u unix 0xdf70e240 0t0 10464 /tmp/ssh-sUymKXxw1495/agent.1495
5 – Listar ficheros abiertos por un usuario. ( -u )
nexolinux m3t4g4m3 # lsof -u m3t4g4m3 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME update-no 1892 m3t4g4m3 20r FIFO 0,8 0t0 14536 pipe update-no 1892 m3t4g4m3 21w FIFO 0,8 0t0 14536 pipe bash 1995 m3t4g4m3 cwd DIR 8,1 4096 393218 /home/m3t4g4m3