我有一台带有 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 可能具有的最基本、最常见的配置吗?在这里的任何假设中我有什么错误吗?
Ubuntu 中的 Logrotate 已经配置为每天运行,并将其操作记录到 syslog(它也会旋转)。
Logrotate 现有的 cron 作业位于 /etc/cron.daily/logrotate
不需要手动配置。当然,如果您愿意,您可以更改默认设置 - 很少有人这样做。
Logrotate 起源于磁盘空间昂贵得多的过去,这是一种限制日志文件使用空间的简单方法。日志文件的价值往往会随着时间的推移以不同的速度下降,因此能够自定义每个文件的轮换和删除。