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
相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
缓存 监控 Linux
|
2天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
15 7
|
1天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
12 5
|
4天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
28 7
|
2天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
11 4
|
1天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
6 2
|
2天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
13 3
|
4天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
28 5
|
6天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
16 2
|
8天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
23 4