我有这个脚本可以删除超过 15 天的旧备份文件
"find $path -type f -mmin +".(60 * 24 * $expire_days)." -name '*.tar.*' -delete"
之后我想在 10 天后每天只保留 1 个备份文件。如何做?备份过程每天运行多次,每天创建 4-5 个文件
答案1
嗯,你必须写另一个脚本,
- 枚举所有文件,并收集每个文件的路径名和上次修改时间(
mtime
)。 - 从每个中
mtime
提取日期部分并忽略时间部分。 - 然后,它扫描结果数据集以识别具有相同日期的条目组;对于每个这样的组,标记除(任何单个)一个条目之外的所有条目。
- 遍历所有标记的条目并删除相应的文件。
如您所见,这是一项(相当简单的)编程任务。我可能会选择 Python 或 Tcl,因为单纯的 shell 脚本可能不够用。
- 如果你对我提出的提纲有具体的问题,可以考虑发帖至SE.stackexchange.com。
- 如果你在使用特定运行时/语言实现解决方案时遇到特定算法的具体问题,请考虑发布到所以。