在 Bash 中检查文件是否已更改并保留最后 15 个副本的最佳方法是什么?

在 Bash 中检查文件是否已更改并保留最后 15 个副本的最佳方法是什么?

编写 bash 脚本并cron(每小时)运行它的最佳方法是什么:

  1. 查看目录中的文件是否已更改
  2. 如果发生更改,请制作一份副本,并在文件名后附加递增的版本号和日期
  3. 保留目录中文件的最后 15 个版本,并删除第 15 个以上的版本

我觉得我可以尝试一下,但这对我来说很重要,所以我很高兴听取其他人的意见,因为我不太了解 shell 脚本。我主要使用 Debian 和 fedora。

答案1

考虑使用 rsnapshot,它使您可以旋转文件系统(或文件夹)并维护任意数量的版本。

Rsnapshot 会冻结整个文件系统或文件夹,但只需做一点工作,您就可以删除旧的连续版本而不进行任何更改。

Rsnapshot使用rsync并且有很多参数可供调优。显然,它可以插入到 crontab 中。

答案2

它被称为新系统日志或者对数旋转。这是最简单的方法,可以节省您显式地编辑crontab和运行其他进程,并处理常见的陷阱(例如检查旧文件、删除它们、重命名其他文件、原子性等)。它已经过验证,并被系统的其余部分使用,因此您应该重用它。

相关内容