删除备份文件 - 每天仅保留一个

删除备份文件 - 每天仅保留一个

我有这个脚本可以删除超过 15 天的旧备份文件

"find $path -type f -mmin +".(60 * 24 * $expire_days)." -name '*.tar.*' -delete"

之后我想在 10 天后每天只保留 1 个备份文件。如何做?备份过程每天运行多次,每天创建 4-5 个文件

答案1

嗯,你必须写另一个脚本,

  1. 枚举所有文件,并收集每个文件的路径名和上次修改时间(mtime)。
  2. 从每个中mtime提取日期部分并忽略时间部分。
  3. 然后,它扫描结果数据集以识别具有相同日期的条目组;对于每个这样的组,标记除(任何单个)一个条目之外的所有条目。
  4. 遍历所有标记的条目并删除相应的文件。

如您所见,这是一项(相当简单的)编程任务。我可能会选择 Python 或 Tcl,因为单纯的 shell 脚本可能不够用。

  • 如果你对我提出的提纲有具体的问题,可以考虑发帖至SE.stackexchange.com
  • 如果你在使用特定运行时/语言实现解决方案时遇到特定算法的具体问题,请考虑发布到所以

相关内容