如何限制屏幕日志文件大小

如何限制屏幕日志文件大小

我使用在 gnu-screen 下运行我的程序并启用日志记录到文件( .screenrc 中的log on/ logfileoptions)。但一段时间后,日志文件变得太大。

有没有办法限制日志文件的大小?

答案1

除非您想要实时控制日志的大小,否则可以使用logrotatewithcron来完成此操作。

假设您想screenlog.log/home/username/目录中轮换,您将创建类似以下的配置文件:

screenlog-rotate.conf

/home/username/screenlog.log {
  size 100k
}

然后运行logrotate /home/username/screenlog-rotate.conf或将其设置为定期运行的 cron 作业。请记住,logrotate默认情况下需要以root身份运行,并且配置文件(screenlog-rotate.conf上面)也需要chown编辑为root,否则会抱怨配置的权限错误。通过运行logrotate-v标志来测试它是否理解您的意思。

上面的配置文件很简单不会保留旧的日志文件。如果文件超过给定的大小,它只会删除文件,而屏幕仍然照常输出其日志(我对此进行了测试)。如果您希望保留旧日志,则需要添加要保留的轮换日志数rotate NN

查看man 8 logrotate有关如何配置的详细信息logrotate。这是一个相关问题:如何使用 >> 限制日志文件大小

logrotate 似乎默认包含在 Arch Linux 中,但我不确定其他发行版是否如此。我预计 Debian 至少会默认安装它,并且使用包管理器应该很容易安装。

相关内容