【问题标题】:logrotate - backup any filelogrotate - 备份任何文件
【发布时间】:2016-04-19 11:46:59
【问题描述】:
我有一个文件。它不是一个日志文件。每天我都需要将它复制到其他地方,并为其名称添加时间戳。我需要保留最后十 (10) 天的副本。
我正在考虑使用 logrotate 服务(服务器正在运行 CentOS)。
我的问题是 logrotate 是否有一些限制以仅旋转日志文件,或者我是否可以使用任何其他文件和位置。那就是我可以指定一些其他位置来放置带有时间戳的副本并仅保存最近 10(天)的副本吗?
提前感谢您的提示。
【问题讨论】:
标签:
linux
server
logrotate
【解决方案1】:
您可以在任何位置旋转任何文件,例如看看/etc/logrotate.d/samba(如果已安装),它会旋转log.smbd。只需在/etc/logrotate.d/ 中创建一个新文件并配置您的文件以进行轮换。一个很好的描述是 here for centOS 没有什么不同 (here)。
问题在于名称中的时间戳。如果你想要这个,它就不再是旋转了。使用logrotate,最新的存档文件始终是第 1 号,因此所有较旧的文件都将被重命名。但是他们保持文件系统中存储的最后修改时间不变。但这一次不是名副其实。
作为替代方案,您可以通过在\etc\cron.*\ 目录之一中添加一个文件来创建一个新的cron 作业。此 cron 作业可以移动您的文件,添加时间戳,例如通过使用date +%y%m%d_%H:%M 并使用touch 创建一个新文件。不需要logrotate。
【讨论】:
-
您可以在 logrotate 配置文件中使用 dateext 指令为文件名添加时间戳。有关logrotate 手册页的更多信息。