Nginx的日志不能进行自动的分页处理,所以需要借助于程序之外进行实现日志的切割等。
logrotate主要针对日志文件来进行轮替操作。logrotate程序的参数配置文件位置:
/etc/logrotate.conf
#logrotate.conf 为logrotate的基本配置,配置文件可以写在这里
/etc/logrotate.d/
#单独每个配置的目录,新增的配置文件。
参数配置,通过 man logrotate可以查询到参数是使用。
一、执行方式
logrotate -vf logrotate.conf
#rotate 英文:轮替、旋转、交换
#-v 显示模式,展示命令的执行过程
#-f 强制执行,不论是否符合配置文件的要素。每个日志文件都执行。
二、参数配置
#simple
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail www@my.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
#常用配置
compress #旧日志进行压缩,默认压缩方式为gzip
compresscmd #指定压缩命令去压缩日志
copy #复制日志文件,不改变原始日志,create的参数将失效
copytruncate#复制之后再清空,部分日志可能会丢失。create的参数将失效
create # create mode owner group, create owner group
# 在轮替之后,立即执行。
daily #每天执行一次
dateext#YYYYMMDD的后缀加在日志格式后面
dateyesterday #用昨天时间来创建日志格式。
delaycompress #延缓日志压缩、与compress联合使用
hourly #每小时进行日志轮替,logrotate一般是每天进行轮替,实现每小时,需要修改lograte的作业
ifempty #空日志,也进行轮替
include #include file or directory
#引入其他文件或者目录
maxsize #最大的大小
minsize #最小的大小
missingok #文件缺少,就执行下一个
monthly #每月执行一次
nocompress #不用压缩
nocopy #不复制原文件
nocopytruncate #不清空,原先复制的文件
nocreate #不新创建原文件
olddir #旧日志的目录
postrotate/endscript #日志轮替之后执行脚本
prerotate/endscript #日志轮替之前执行脚本
rotate # rotate count
# 轮替次数
sharedscripts #共享脚本,避免多个日志情况下执行多次
weekly #每周执行一次
yearly #每年执行一次