- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
在 Linux 系统维护过程中,磁盘空间管理至关重要。当面临大量文件占用磁盘空间,尤其是数据库审计日志、应用程序临时文件等,若不及时清理过期文件,不仅会消耗系统 inode 资源,还可能影响系统正常写入。而直接使用 rm 命令删除海量文件,不仅耗时,还可能遇到 “-bash: /bin/rm: Argument list too long” 报错。本文将结合实际操作,介绍两种在 Linux 系统环境下高效删除海量文件的操作思路。
思路一:使用rsync命令删除
首先创建一个空文件夹,然后通过rsync --delete-before -d <空文件夹> <需要清理删除小文件的目录> 命令,达到删除海量小文件的目的。以下以删除Oracle数据库审计日志的操作步骤。
[oracle@testdb adump]$ mkdir /data/null
[oracle@testdb adump]$ ls -l /data/null
total 0
[oracle@testdb ~]$ nohup rsync --delete-before -d /data/null/ /u01/gird/app/oracle/admin/testdb/adump/ &
使用man rsync查看rsync命令相关的参数说明如下:
-d, --dirs transfer directories without recursing
--delete-before receiver deletes before transfer (default)
思路二:使用find命令的delete参数
使用find <需要清理删除小文件的目录> -type f -delete命令直接删除大批小文件。
操作命令如下演示:
[oracle@test adump]$ nohup find /u01/gird/app/oracle/admin/testdb/adump/ -type f -delete &
可以参考下面的命令来简单监控删除过程中Inodes使用率的变化:
while true; do df -i /; sleep 30; done
在使用find命令删除文件时,可以结合maxdepth 、+n(for greater than n)、-n(for less than n)、n(for exactly n)、-ctime n(File's status was last changed n*24 hours ago)等常用参数进行。
通过上述两种删除海量文件的操作思路,即使用 rsync 命令和 find 命令的 delete 参数,用户可以根据实际情况选择合适的方法来高效清理文件。在实际操作中,要注意结合系统存储 IO 情况,并采用 nohup 方式在后台执行,以避免终端超时退出,确保文件清理工作的顺利进行,从而有效管理 Linux 系统磁盘空间,保障系统稳定运行。
售前咨询
售后咨询
备案咨询
二维码
TOP