我使用在 gnu-screen 下运行我的程序并启用日志记录到文件( .screenrc 中的log on
/ logfile
options)。但一段时间后,日志文件变得太大。
有没有办法限制日志文件的大小?
答案1
除非您想要实时控制日志的大小,否则可以使用logrotate
withcron
来完成此操作。
假设您想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 N
。N
查看man 8 logrotate
有关如何配置的详细信息logrotate
。这是一个相关问题:如何使用 >> 限制日志文件大小
logrotate
似乎默认包含在 Arch Linux 中,但我不确定其他发行版是否如此。我预计 Debian 至少会默认安装它,并且使用包管理器应该很容易安装。