6.3 使用日志轮转 |
|
所有的日志文件都会随着时间和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理,以免造成磁盘空间的浪费。由于查看小文件的速度比大文件快很多,使用日志轮转同时也节省了系统管理员查看日志所用的时间。日志轮转可以使用系统提供的logrotate功能。
该程序可自动完成日志的压缩、备份、删除等工作,并可以设置为定时任务,如每日、每周或每月处理。其命令格式如下。
参数说明如表6.4所示。
表6.4 logrotate命令参数说明
logrotate的主配置文件为/etc/logrotate.conf和/etc/logrotate.d目录下的文件,查看logrotate主配置文件的例子如下:
logrotate配置文件参数说明如表6.5所示。
表6.5 logrotate配置文件参数说明
本示例主要使用logrotate轮转Web服务Nginx的访问日志,Nginx的访问日志文件位于/data/logs目录下,安装位置位于/usr/local/nginx。
首先配置轮转设置参数,如下所示:
参数说明如下。
● notifempty:如果文件为空则不轮转。
● daily:日志文件每天轮转一次。
● rotate 5:轮转文件保存为5份。
● postrotate/endscript:日志轮转后执行的脚本。这里用来重启Nginx,以便重新生成日志文件。
注意观察该命令的输出,若没有error日志,则正常生成轮转文件,配置完成。
如需该功能每天自动轮转,可以将对应命令加入crontab,在/etc/cron.daily目录下有logrotate执行的脚本,该脚本会通过crond调用,每天执行一次: