一.LSOF使用技巧
lsof的功能很多,特別提醒大家, -c,-g,-p,-u,这四个参数最有用。更详细的资料请参看:man lsof。以下给大家介绍一下我在工作中,经常使用的技巧:
1、查看文件系统阻塞
根据工作需要,系统管理员想卸载一个文件系统并执行umount /mountpoint,但程序报告常常显示:umount: /mountpoint: device is busy;这是因为该文件系统上有正在打开的文件而不允许你这么做。这时,我们需要知道哪些文件、程序及用户仍在使用该系统,以便通知用户退出该系统,可以使用lsof识别正在打开一个特定文件系统的进程,执行如下命令:
/usr/sbin/lsof /mountpoint
在这里,mountpoint就是安装位置。例如:
# /usr/sbin /lsof /home
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 12134 meng cwd DIR 8,5 4096 32705 /home/meng
telnet 12176 meng cwd DIR 8,5 4096 32705 /home/meng
bash 19809 meng cwd DIR 8,5 4096 32705 /home/meng
bash 20276 meng cwd DIR 8,5 4096 32705 /home/meng
su 20315 root cwd DIR 8,5 4096 32705 /home/meng
bash 20316 root cwd DIR 8,5 4096 32705 /home/meng
csh 20374 root cwd DIR 8,5 4096 32705 /home/meng
lsof 20396 root cwd DIR 8,5 4096 32705 /home/meng
lsof 20397 root cwd DIR 8,5 4096 32705 /home/meng
显然,所有使用这些被打开的文件的进程都需要在文件系统能够被卸载前被终止。管理员以root身份,kill掉占用这个文件系统的进程,解除文件系统阻塞。
2、搜索打开的网络连接
如果想搜索IP地址为10.645.64.23的远程连接主机的所有网络连接,可以执行如下命令:
/usr/sbin/lsof -i@10.65.64.23可以打开系统中该远程知己所有打开的套接字。
# lsof -i@10.65.64.23
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
telnetd 6605 root 0u inet 0x14813f00 0t0 TCP xpp3:telnet->;linuxone:33143 (ESTABLISHED)
telnetd 6605 root 1u inet 0x14813f00 0t0 TCP xpp3:telnet->;linuxone:33143 (ESTABLISHED)
telnetd 6605 root 2u inet 0x14813f00 0t0 TCP xpp3:telnet->;linuxone:33143 (ESTABLISHED)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




