日志切割
为什么要做日志切割?
/data/logs/ 里面有很多访问日志。如果日志越来越大,可能有一天会占满整个磁盘,为了避免日志过大导致的一些问题,需要每天做日志切割。
查看日志命名:
cat less tail more vi
系统里有一个日志切割的服务logrotate
# cat /etc/logrotate.conf //logrorate日志切割的配置文件
子配置文件在/etc/logrotate/*下
配置说明:
# see "man logrotate" for details
# rotate log files weekly
weekly //表示按周切割
# keep 4 weeks worth of backlogs
rotate 4 //保留4个,切割4个文件
# create new (empty) log files after rotating old ones
create //把旧的文件改名字,新建一个新的文件
# use date as a suffix of the rotated file
dateext //使用日志作为后缀切割文件
# uncomment this if you want your log files compressed
#compress //是否要压缩
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //包含了这个目录下的日志文件
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp { //针对这个日志目录的文件进行切割
monthly //按月切割
create 0664 root utmp
minsize 1M //单个文件大小,大于1M就切割,小于1M不切割
rotate 1
}
/var/log/btmp { //针对这个日志目录的文件进行切割
missingok //忽略错误
monthly //按月切割
create 0600 root utmp //切割用户和数组的权限
rotate 1 //保留天数
}
可以将nginx的日志目录/data/logs/bbs.access.log目录加入到系统日志切割配置文件中进行定义切割格式。
如果是yum安装的nginx,则系统会有一个nginx专门的nginx日志切割文件
# vim /etc/logrotate.d/nginx
配置内容如下:
/var/log/nginx/*.log /data/logs/*.log {
daily
dateext
missingok
rotate 7
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
配置好后,执行切割命令
# logrotate -v /etc/logrotate.d/nginx //-v选项展示切割情况
# logrotate -vf /etc/logrotate.d/nginx //选项-f强制切割
查看日志切割情况
后续就不用管了,每天系统会定时检查配置文件并自动执行日志切割。