NGINX日志割切

/etc/logrotate.conf # 主配置文件 /etc/logrotate.d # 配置目录,需要把配置文件放在这里
注意:logrotate一般是不需要放在crontab定时执行的。
 
编写配置文件:
/var/log/log-file {
rotate 5
size 10M---按文件最小大小来分割
weekly---按文件时间每一周分割,与size冲突。
copytruncate
dateext-----#切割后的日志文件以当前日期为结尾,如xxx.log-2018-2-28
}
 
执行logrotate命令:
/usr/sbin/logrotate -f log-file(配置文件)
 
---------------
copytruncate
如果程序不支持重新打开日志的功能,又不能粗暴地重启程序,怎么滚动日志呢?copytruncate的方案出场了。
这个方案的思路是把正在输出的日志拷(copy)一份出来,再清空(trucate)原来的日志。详细步骤如下:
  1. 拷贝程序当前正在输出的日志文件,保存文件名为滚动结果文件名。这期间程序照常输出日志到原来的文件中,原来的文件名也没有变。
  2. 清空程序正在输出的日志文件。清空后程序输出的日志还是输出到这个日志文件中,因为清空文件只是把文件的内容删除了,文件的inode编号并没有发生变化,变化的是元信息中文件内容的信息。
 

原文地址:https://www.cnblogs.com/normanlin/p/14210258.html