我有一个包含许多日志文件的目录,我想每天轮换所有这些文件。出于组织目的,我希望能够将旋转日志移动到按日期命名的不同目录(或子目录)中,保留最后一周的日志。
我可以使用 logrotate 来实现大部分功能,方法是就地旋转文件,甚至使用olddir
指令将它们移动到一个不同的目录,但我无法找到每次旋转创建单独子目录的解决方案。我怎样才能做到这一点?:
Logs to rotate: /var/log/example/*
Desired target directories (keeping a week):
/var/log/example/20121006/*
[ ... ]
/var/log/example/20121012/*
postrotate
您应该能够在指令中调用外部脚本:并让该脚本进行移动,例如:
dateext
但是,仅使用该指令可能更容易。这样,旋转的文件将附加一个时间戳(尽管没有移动到不同的目录)。有关这两个指令的详细信息,请参见
logrotate(8)
。您有
olddir
可以在配置文件中使用的指令。从文档中:
参考:https ://manpages.debian.org/jessie/logrotate/logrotate.8.en.html