Linux清理磁盘空间常用命令

简介: Linux清理磁盘空间常用命令

1eba39a694cadf98832d318fd21d7693_9e79850ca21dc54297492f6a9aabb4de.png

查看磁盘占用情况


# 查看服务器磁盘空间整体情况    
df -h    
# 查看当前目录,哪个文件占用最大    
du -h --max-depth=1    
# 查看当前目录下各文件及目录占用大小    
du -sh *

按文件类型日期查找文件并删除


# 不加 -maxdepth 则会遍历当前目录下所有子目录中所有文件    
# 找出当前目录下不包含子目录1天之前的 log 文件并删除    
find ./ -maxdepth 1 -name "*.log*" -mtime +0 -exec rm -rf {} \;    
# 找出当前目录下不包含子目录3天之内的 .log 文件并删除    
find ./ -maxdepth 1 -name "*.log*" -mtime -3 -exec rm -rf {} \;

其他参数

647b2690999474b4e1b060a2f99b7e0a_2a5b324cb57990bcc413bb07d696f6a3.png


-mindepth n: 限定搜索指定目录的最小深度    
-maxdepth n: 限定搜索指定目录的最大深度    
atime 最后一次访问时间, 如 less, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看    
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看    
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变    
-ctime -n 查找距现在 n*24H 内修改过的文件    
-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件    
-ctime +n 查找距现在 (n+1)*24H 前修改过的文件    
[a|c|m]min [最后访问|最后状态修改|最后内容修改]分钟数(n*min)    
[a|c|m]time [最后访问|最后状态修改|最后内容修改]天数(n*24H)

查看文件目录数量


# 查看当前目录下的文件数量(不包含子目录中的文件)    
ls -l | grep "^-" | wc -l    
# 查看当前目录下的文件数量(包含子目录中的文件)注意:R,代表子目录    
ls -lR | grep "^-" | wc -l    
# 查看当前目录下的目录个数(不包含子目录中的目录)    
ls -l | grep "^d" | wc -l    
# 查看当前目录下的目录数量(包含子目录中的目录)注意:R,代表子目录    
ls -lR | grep "^d" | wc -l    
# 统计所有以"test"开头的目录下的全部文件数量    
ls -lR test*/|grep "^-"| wc -l    
# 统计当前目录下42天前所有文件总共大小(单位字节)    
find ./ -name "*.*" -mtime +42 -exec ls -l {} \;|awk 'BEGIN {SUM=0}{SUM+=$5} END{print SUM}'

找出已经删除但空间未释放的大文件并清空


找出已经删除但磁盘空间未释放的文件,如果文件已经删除,但实际的磁盘空间未释放,这个时候文件句柄 fd 相关信息还在内存中,可以通过 lsof 命令找出,比如打开文件的pid和读写文件的系统fd。

# yum -y install lsof    
# lsof |grep -i delete    
java      20302  5351          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302  5354          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302  5988          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302 12680          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302 15047          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302 16379          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)    
java      20302 16380          hbase    3w      REG              253,1 25778031203      43040 /var/log/hbase/gc.log-201812251535 (deleted)

清空已经删除但未释放的大文件


如果要让大文件彻底删除,通常需要重启打开文件的进程,但是有时在线服务不方便重启,影响服务的可用性。


这个时候可以通过 /proc/${pid}/fd 信息找到打开这个文件的系统 fd,然后通过 fd 来清空文件

# ll /proc/20302/fd/ |grep 201812251535    
l-wx------ 1 hbase hadoop 64 Oct 18 21:02 3 -> /var/log/hbase/gc.log-201812251535 (deleted)    
# 清空文件    
# echo > /proc/20302/fd/3
相关文章
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
321 137
|
3月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
731 57
|
2月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
508 2
|
3月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
331 0
Linux内存问题排查命令详解
|
3月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
312 16
|
4月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
299 8
|
4月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1637 10
|
4月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
554 0
|
4月前
|
安全 Linux Shell
Linux系统中sudo命令的高效运用技巧。
用户可以通过sudo -l来列出自己目前可执行的命令列表,这有助于用户了解自己的权限范围。
199 0