centos怎样回收重复数据
导读:在 CentOS 上清理重复数据的实用方法 一、工具选择与安装 fdupes:按内容识别重复,先比大小、再比部分/完整 MD5,最后逐字节校验;支持交互删除、保留首个、以及将重复项替换为硬链接/软链接。在 CentOS/RHEL 上先启用...
在 CentOS 上清理重复数据的实用方法
一、工具选择与安装
- fdupes:按内容识别重复,先比大小、再比部分/完整 MD5,最后逐字节校验;支持交互删除、保留首个、以及将重复项替换为硬链接/软链接。在 CentOS/RHEL 上先启用 EPEL 仓库后安装:sudo yum install epel-release & & sudo yum install fdupes(或 dnf)。
- rdfind:同样基于内容,自动判定“原始”与“重复”,可生成报告、替换为硬链接/软链接或直接删除重复项。安装:sudo yum install epel-release & & sudo yum install rdfind。
- FSlint:图形与命令行兼具的“文件清理套件”,包含重复文件查找等工具。安装:sudo yum install epel-release & & sudo yum install fslint。
二、使用 fdupes 查找与清理
- 扫描目录(递归):fdupes -r /path
- 仅列出并统计:fdupes -r -S -m /path
- 交互式删除(每组保留一个):fdupes -r -d /path
- 自动保留首个并删除其余:fdupes -r -d -N /path
- 删除前先“演练”不改动:fdupes -r -d -N --dryrun /path
- 将重复项替换为硬链接(保留一份真实数据):fdupes -r -H /path
- 将重复项替换为软链接:fdupes -r -s /path
- 常用过滤:忽略空文件 -n,忽略隐藏文件 -A。
三、使用 rdfind 查找与清理
- 扫描并生成报告:rdfind /path(结果写入当前目录 results.txt)
- 演练模式:rdfind -dryrun true /path
- 删除重复文件:rdfind -deleteduplicates true /path
- 用硬链接去重:rdfind -makehardlinks true /path
- 用软链接去重:rdfind -makesymlinks true /path
- 忽略空文件:rdfind -ignoreempty true /path
四、不装软件的脚本方案与注意事项
- 基于 MD5 的查找与“先移后审”脚本思路:
- 生成文件清单与校验和:find “$DIR” -type f -print0 | sort -z | xargs -0 md5sum > /tmp/md5sums.txt
- 找出重复校验和并移动重复项到临时目录:
awk ‘{ print $1} ’ /tmp/md5sums.txt | sort | uniq -d | while read -r md5; do
grep “^$md5” /tmp/md5sums.txt | cut -d’ ’ -f2- | tail -n +2 | xargs -I{ } mv “{ } ” ~/temp_duplicates/
done - 复核无误后再删除临时目录。
- 安全要点:
- 操作前先做全量备份;优先在非生产环境验证命令。
- 对数据库、虚拟机镜像、容器镜像等专有格式文件,仅靠哈希可能误判,建议用专用工具或先小范围演练。
- 删除或替换前确认保留策略(如保留最新/最完整/指定目录)。
- 删除后若空间未释放,排查是否有进程仍占用该文件(如 lsof | grep deleted),必要时重启相关进程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos怎样回收重复数据
本文地址: https://pptw.com/jishu/763690.html
