Navicat 不支持自动删除过期备份文件,需借助 PowerShell(Windows)或 find(Linux/macOS)脚本配合系统定时任务实现;示例:PowerShell 用 Get-ChildItem + AddDays(-7) + Remove-Item,Linux 用 find -mtime +7 -delete。
navicat本身不支持设置备份文件自动删除天数,必须靠外部脚本或系统任务配合实现。
Navicat 备份任务不提供“过期清理”选项
Navicat 的
功能只负责生成备份(如
),不管理历史文件生命周期。你找不到类似
的配置项——这不是遗漏,是设计如此。
常见误操作包括:在备份路径里手动勾选“覆盖同名文件”,但这只影响单次执行,无法解决累积冗余;或依赖 Navicat 日志清理,但日志和备份文件是两套机制,互不影响。
备份文件默认保存在你指定的任意本地/网络路径,Navicat 不跟踪其修改时间
所有备份文件权限、归属、命名格式均由操作系统控制,Navicat 不干预
即使启用
,压缩包仍需手动清理
Windows 下用 PowerShell 脚本按天数清理最稳妥
PowerShell 原生支持时间计算和文件筛选,比批处理更可靠,尤其处理中文路径或带空格的目录时不易出错。
示例脚本(保存为
):
关键点说明:
必须指向 Navicat 实际写入备份的目录(检查备份任务的
设置)
可替换为
或
,取决于你导出格式
表示保留最近 7 天,数值按需调整
务必先用
预览匹配结果,确认无误再加
Linux/macOS 下用 find 命令一行搞定
POSIX 系统直接使用
最轻量,无需额外依赖。注意 Navicat for Linux 桌面版备份路径通常在
或你自定义的位置。
navicat for mysql 破解版
优秀的mysql数据库远程管理工具
下载
执行前先测试匹配:
确认输出是你想删的文件后,加
执行清理:
注意事项:
表示“修改时间超过 7×24 小时”,不是“7 天前”,和 PowerShell 的
语义略有差异(但对备份场景基本等效)
若备份含子目录,加
限制只扫当前层,避免误删嵌套结构
脚本中建议用
开头,并配合
记录执行时间
把清理任务集成进系统定时机制
脚本写完只是第一步,必须让它定期运行。Navicat 不会调用它,得靠系统级调度:
Windows:用任务计划程序,触发器设为“每天凌晨 2:00”,操作为“启动程序” →
,参数填
Linux/macOS:
加一行
重要提醒:
中的路径必须写绝对路径,且
不展开,
无效
磁盘空间告警不能只靠“定期清理”——如果某次备份失败导致后续任务跳过,旧文件会一直堆积。建议在清理脚本末尾加一句
判断使用率,超阈值时发邮件或写日志,这才是真正可控的策略。
Automated Backupbackup_202405201430.sqlKeep last 7 daysCompress backup filecleanup_navicat_backups.ps1Get-ChildItem -Path "D:\navicat_backups" -Filter "*.sql" -File |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force-PathBackup to-Filter "*.sql""*.zip""*backup*"AddDays(-7)Get-ChildItem ... | Where-Object ... | ForEach-Object { Write-Host $_.FullName }Remove-Itemfind~/Documents/Navicat/Backups/find "/home/user/navicat_backups" -name "*.sql" -type f -mtime +7-deletefind "/home/user/navicat_backups" -name "*.sql" -type f -mtime +7 -delete-mtime +7AddDays(-7)-maxdepth 1#!/bin/bashdate >> /var/log/navicat_cleanup.logpowershell.exe-ExecutionPolicy Bypass -File "D:\scripts\cleanup_navicat_backups.ps1"crontab -e0 2 * * * /usr/bin/find "/home/user/navicat_backups" -name "*.sql" -type f -mtime +7 -delete 2>/dev/nullcrontab$HOME~df -h /path/to/backup | grep -q "9[0-9]%"