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就好。