我有一台装有 Nginx 的全默认 Ubuntu VPS 机器,用于一些轻量级 WordPress 网站,每个网站最多有 5 个插件、10 个网页、20 张图片。
到目前为止,我已经通过以下方式自动清理了所有默认日志(或至少其中的一些)crontab
:
0 0 * * 0 find /var/mail/* /var/log/* -type f -exec truncate -s 0 {} \;
我了解到有些人认为使用 logrotate 更好,因为它可以实现基本相似的目标,并覆盖更多日志(或可能更多日志),而且是公用的且维护良好。因此,我更喜欢使用 logrotate。
我对 logrotate 确实没有什么特别的要求,我认为它的默认基本配置就足够了。因此我问自己应该如何crontab
以最短的默认方式配置 logrotate。
我发现本教程以及其他一些,但我觉得它们都比我需要的更深入一些——带有 Ubuntu-Nginx 和 WordPress 的 VPS 机器的开箱即用配置。
如果我理解我所读的内容正确的话,这应该足够了:
0 * * * * /usr/sbin/logrotate
如果我想要一个state
文件(logrotate 的日志,我认为,这不是强制性的)我可以这样做:
0 * * * * /usr/sbin/logrotate home/user/logrotate.conf --state /home/user/logrotate-state
这是 logrotate 最基本、最常见的配置吗?我在这里的假设是否错误?
答案1
Ubuntu 中的 Logrotate 已配置为每日运行,并将其操作记录到 syslog(它也会轮换)。
Logrotate 现有的 cron 任务位于 /etc/cron.daily/logrotate
无需手动配置。当然,您可以根据需要更改默认设置 - 很少有人会这样做。
Logrotate 起源于磁盘空间非常昂贵的旧时代,这是一种限制日志文件使用空间的简单方法。日志文件的价值会随着时间的推移以不同的速度减少,因此可以自定义每个日志文件的轮换和删除。