+
95
-

回答

您可以使用logrotate工具来定期自动清理/var/log目录下的大型日志文件。

以下是一些步骤:

确认logrotate是否已安装:sudo apt-get install logrotate

创建一个logrotate配置文件,例如/var/log/myapp:

/var/log/myapp/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 644 root root

}


这个配置文件包含了/var/log/myapp目录下所有以.log为后缀的文件。其中,daily表示每天执行一次轮换,rotate 7表示保留最近7个日志文件,compress表示压缩旧日志文件,delaycompress表示延迟压缩到下一次轮换时进行,missingok表示如果日志文件不存在则忽略,notifempty表示如果日志文件为空则忽略,create 644 root root表示创建新的日志文件时设置权限和所有者。

将配置文件放置在/etc/logrotate.d/目录下。

测试配置文件是否正确:sudo logrotate -d /etc/logrotate.d/myapp

如果测试通过,则将其添加到crontab中以定期执行:sudo crontab -e

添加以下行:0 0 * * * /usr/sbin/logrotate /etc/logrotate.d/myapp >/dev/null 2>&1

这将在每天午夜执行logrotate命令。

网友回复

我知道答案,我要回答