df和du
查看当前服务器磁盘空间(df和du)
df,du区别:
df 是从文件系统获取空间大小,当删除了某文件,可能还未被Linux完全回收掉,那这部分大小也会被计算在内;直到已删除文件根据规则被释放掉之后,这部分的大小才不会被计算在内,df值更精确
du是通过搜索文件来计算文件大小,并累加。du就只能计算当前存在能看到的文件,他就算大小就是认为当前所有存在文件之和
df:
df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block)
df -i 查看索引节点的占用(Inodes)
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满
du:
du -s 列出总量,不列出目录的占用
du -ah 列出所有文件与目录大小,-h是指以易读的方式显示
查看目录isTester/ 所占用的空间 du -sh istester
查看超1G的文件夹:find / -type d -size +1G
一次磁盘清理过程记录:
1、df -h 查看磁盘占用,/data占用100%
2、
a.查看/data下最大的5个目录 du --max-depth=1 | sort -rn | head -5
区别与 du -h --max-depth=1 | sort -rn | head -5 命令,加了-h之后sort会按照文件大小打头数据排序
--max-depth=1 只找当前目录下的第一级目录
结合sort:sort -n 按文件大小排列
sort -r 倒序显示,结合-n
sort -u 去除相同结果,只保留一个
sort -M 按月份排序
结合head:只看前5行内容
b:逐个文件目录排查,锁定可清理的内容(从占用比较大可以清理的文件下手)
2.文件已经删除,但磁盘空间变化不大或磁盘空间已占满,但找不到大文件可清理
lsof -n | grep "delete"
原因:当我们删除某些文件时,文件删除了,但如果有进程打开了这个文件,进程未结束,该文件不会被真正释放掉
解决:kill -9 关掉进程解决
lsof命令集:
lsof(list open files)是一个查看进程打开的文件的工具
-c <进程名> 输出指定进程所打开的文件
-d <文件描述符> 列出占用该文件号的进程
+d <目录> 输出目录及目录下被打开的文件和目录(不递归)
+D <目录> 递归输出及目录下被打开的文件和目录
-i <条件> 输出符合条件与网络相关的文件
-n 不解析主机名
-p <进程号> 输出指定 PID 的进程所打开的文件
-u 输出指定用户打开的文件
2、查看内存大小:free -m
查看内存信息:cat /proc/meminfo