MySQL如何配置定时清理过期备份文件_find命令与保留周期策略

最可靠方式是用 find -mtime(非-ctime)按修改时间删除旧MySQL备份文件,因-mtime反映实际写入完成时间;需配合-type f、-name精确过滤,先-print测试再-delete,并在crontab中设置PATH和错误日志。用 find 按修改时间删旧备份文件最可靠Linux 下清理 MySQL 备份,find 是最轻量、最可控的选择。它不依赖数据库状态,也不需要额外服务,直接操作文件系统即可。关键不是"能不能删",而是"按什么时间维度删"------必须用 -mtime(修改时间)而非 -ctime(状态变更时间),因为备份脚本通常只改文件内容,不改权限或属主,-ctime 容易误判。-mtime +7 表示"7天前及更早修改的文件",注意:不是"超过7天",是">= 7*24小时",跨午夜计算,别按日历天数理解备份文件名带日期(如 backup_20240501.sql.gz)时,find 仍应优先看 -mtime,因为重命名、解压、传输都可能改变 -ctime 或 -atime,唯独 -mtime 反映实际写入完成时间务必先加 -print 测试,例如:find /backup/mysql -name "*.sql.gz" -mtime +7 -print,确认列出的确实是目标文件再加 -deleteMySQL 备份路径里混着临时文件?用 -type f 和 -name 组合过滤生产环境的备份目录常有 .tmp、.part、锁文件或日志,直接 find ... -delete 可能误删正在写的备份。安全做法是显式限定文件类型和命名模式。只删普通文件:find /backup/mysql -type f,排除目录、socket、设备节点限定扩展名组合:-name "*.sql.gz" -o -name "*.xbstream" -o -name "*.zst",避免匹配到 mysql-bin.000001 这类二进制日志(它们该由 expire_logs_days 管)如果备份脚本生成临时文件(如 backup_20240501.sql.gz.part),加 ! -name "*.part" 排除,否则 -mtime +7 可能把未完成的也删了保留最近 N 个备份?find 本身不支持"按数量留档",得配合 sort 和 tail按天备份但要求"永远留最近 14 个",仅靠 -mtime 不行------某天没备份,+14 就会多删;某天双备份,+14 又会少删。必须按文件名或时间戳排序后取尾部。 Zeemo AI 一款专业的视频字幕制作和视频处理工具

相关推荐
java_logo9 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司16 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
大模型码小白17 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧18 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
憧憬成为web高手19 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学19 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
白露与泡影20 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
oradh21 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
C^h21 小时前
python函数学习
人工智能·python·机器学习
Fanta丶1 天前
4.Python set()集合、dict(字典、映射)、 数据容器的通用功能
python