Linux Linux下查看句柄

Linux下查看句柄

查看各个分区的句柄数df -ih查看句柄最大数ulimit -n查看23711进程连接句柄数lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|more|grep23711查看所有进程句柄数lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|more第一列是句柄数,第二列是PID查看连接状...

查看各个分区的句柄数

df -ih


查看句柄最大数

ulimit -n


查看23711进程连接句柄数

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more |grep 23711


查看所有进程句柄数

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more第一列是句柄数,第二列是PID


查看连接状态

netstat -an

lsof -i


查看某个线程号的详细信息。
ps -aef|grep 24204

没有释放句柄占用的文件存放路径
用root权限登录 cd /proc
ls 会显示当前所有进程号命名的目录
找到对应进程进入
cd fd
ls
闪烁的为被标记为deleted的文件。

产生没有释放句柄的原因: 第一线程打开文件。另一个线程将该文件删除。就会出现给问题。将整儿进程kill掉才能释放全部句柄。

我的根目录的inode节点满了,没办法只有自己来看看

 
  

[root@master ~]# df -i
Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/sda3      1240320 1240320      0  100% /
tmpfs           126536       2 126534    1% /dev/shm
/dev/sda1        25688      38  25650    1% /boot
.host:/              0       0      0     - /mnt/hgfs

按照上面的

 
  

lsof -n|awk '{print $2}'|sort|uniq -c|sort -n

    102 1716

    113 1784

    170 1772

    170 1774

    170 1777

    170 1780

    170 1781


    183 1718

我把靠后的进程给杀了,没用,df -i 还是一样的,继续想别的办法

我就只有一个办法了,那就是看看那个文件夹下的文件最多,写了个for循环来查看

 
  

[root@master /]# for i in `ls`;do find $i/ -type f|wc -l &&echo $i ;done
0
app
91
bin
22
boot
60
dev
1100
etc
8104
home
3242
lib
277
lib64
0
lost+found
0
media
36237
mnt
525
opt
find: proc/2325/task/2325/fd/5”: 没有那个文件或目录
find: proc/2325/task/2325/fdinfo/5”: 没有那个文件或目录
find: proc/2325/fd/5”: 没有那个文件或目录
find: proc/2325/fdinfo/5”: 没有那个文件或目录
27411
proc
38251
root
198
sbin
0
selinux
9
srv
7008
sys
4
tmp
79319
usr

一个media占了3W3一个tmp占了8W靠,但是多余120W的还是微不足道,看看这两个文件夹下都有什么

 
  

[root@master /]# du -sh tmp/
44K tmp/
[root@master /]# du -sh  media/
4.0K media/

什么都没有,郁闷了,先给删了,再看看

 
  

[root@master /]# df -i
Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/sda3      1240320 1240316      4  100% /
tmpfs           126536       2 126534    1% /dev/shm
/dev/sda1        25688      38  25650    1% /boot
.host:/              0       0      0     - /mnt/hgfs

删了但是只是增加了那么一点点,估计不是他两的问题,刚才的循环还没结束,继续想办法

大目录太慢,就进到下一层目录试试看

 
  

[root@master var]# for i in `ls /var`;do find $i/ -type f|wc -l &&echo $i ;done

1
account
find : cache / salt / master / jobs / 7c / 3238b58e45f242132dade0d989314a /. minions . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 3238b58e45f242132dade0d989314a /. load . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 3238b58e45f242132dade0d989314a / jid ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / f98bd5f094921b93d5435ea81b0414 /. minions . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / f98bd5f094921b93d5435ea81b0414 /. load . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / f98bd5f094921b93d5435ea81b0414 / jid ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / afa7d7cf12cedd5e2f121536749ded /. minions . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / afa7d7cf12cedd5e2f121536749ded /. load . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / afa7d7cf12cedd5e2f121536749ded / jid ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 2f0ced419e95aff3fd0940303ed101 / master / return . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 2f0ced419e95aff3fd0940303ed101 / master / out . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 2f0ced419e95aff3fd0940303ed101 /. minions . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 2f0ced419e95aff3fd0940303ed101 /. load . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / 2f0ced419e95aff3fd0940303ed101 / jid ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / c8ad7fa07b55ceaf9dd4f1fa068ee4 /. minions . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / c8ad7fa07b55ceaf9dd4f1fa068ee4 /. load . p ”: 没有那个文件或目录
find : cache / salt / master / jobs / 7c / c8ad7fa07b55ceaf9dd4f1fa068ee4 / jid ”: 没有那个文件或目录

丫的终于找到了你了,果断删除就行了


转载于:https://blog.51cto.com/853056088/2123473

Logo

更多推荐

  • 浏览量 2968
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献2条内容