linux查看文件被哪个进程占用?

1> 如果文件是端口号

netstat -ntlp | grep portNum

[root@localhost root]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:59708           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:43814           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:8649            0.0.0.0:*               LISTEN      1320/gmond          
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1242/svnserve       
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1231/rpcbind        
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      19803/rpc.mountd    
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1073/rsync          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1216/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1774/cupsd          
tcp        0      0 0.0.0.0:39319           0.0.0.0:*               LISTEN      1227/rpc.statd      
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
tcp6       0      0 :::40259                :::*                    LISTEN      1227/rpc.statd      
tcp6       0      0 :::56109                :::*                    LISTEN      -                   
tcp6       0      0 :::111                  :::*                    LISTEN      1231/rpcbind        
tcp6       0      0 :::20048                :::*                    LISTEN      19803/rpc.mountd    
tcp6       0      0 :::80                   :::*                    LISTEN      4144/httpd          
tcp6       0      0 :::45553                :::*                    LISTEN      -                   
tcp6       0      0 :::21                   :::*                    LISTEN      1073/rsync          
tcp6       0      0 :::22                   :::*                    LISTEN      1216/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1774/cupsd 

2>如果是普通文件

lsof 

fuser

 

3>如果是磁盘空间

du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量 

du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量

4> 如何释放缓存

用sync命令可以把内存中的数据写入硬盘,同时还有/proc/sys/vm/drop_caches这个文件可以。

关于drop_caches文件:系统默认为0, 在Documentation/sysctl/vm.txt中有如下描述:

drop_caches

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache:仅清除页面缓存(PageCache)
 echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:清除目录项和inode
 echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:清除页面缓存,目录项和inode
 echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation and dirty objects are not freeable, the user should run `sync' first.

一般来讲 echo 1 > /proc/sys/vm/drop_caches就好。

posted @ 2018-07-17 15:45  无边身尊者  阅读(33164)  评论(0编辑  收藏  举报