logrotate实现日志切割方式(转储)
logrotate日志切割(转储)
背景
系统每天凌晨1:59查看/data/nginx/log日志文件的大小,如果小于10M,不做任何处理,如果大于等于10M,触发日志转储,
转储后/data/nginx/log的大小为0,并且会在/data/nginx/logs/下生成一个通过gzip压缩的以当前日期命名的.gz文件
注意:该配置算不上是日志切割,因为当日志文件为25M时,也会归档为一个文件,并不是以10M为单位进行分割,只能称为日志转储。
日志切割配置文件/etc/logrotate.conf
cat > /etc/logrotate.conf << EOF /data/nginx/log { missingok notifempty create 0640 root root compress dateext olddir /data/nginx/logs/ rotate 50 size 10M } EOF
相关解释:
/data/nginx/log #表示要做切割的日志文件名 missingok #在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误 notifempty #如果日志文件为空,轮循不会进行 create 0640 root root #以指定的权限创建全新的日志文件 compress #在轮循任务完成后,使用gzip压缩归档文件 dateext #使用当前日期作为归档文件的命名格式 olddir /data/nginx/logs/ #指定归档文件存放到/data/nginx/logs/目录下,/data/nginx/logs/需提前创建 rotate 50 #最多存储50个归档文件,当生成第51个归档文件时,第1个会被删除 size 10M #当监听文件达到10M时进行切割归档
设置定时任务
echo "59 01 * * * /usr/sbin/logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log" >> /var/spool/cron/root crond start
logrotate日志切割报错 文件不再同一个用户组下
分割日志时报错:
:error: skipping "/var/log/nginx/test.access.log" because parent
directory has insecure permissions (It's world writable or writable by
group which is not "root") Set "su" directive in config file to tell
logrotate which user/group should be used for rotation.
xx 文件所属用户
添加“su root xx”到/etc/logrotate.d/nginx文件中即可
如下:
/var/log/nginx/*.log { su root public daily missingok rotate 52 compress delaycompress notifempty #ifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解Linux 服务管理两种方式service和systemctl
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。这篇文章主要介绍了Linux 服务管理两种方式service和systemctl,需要的朋友可以参考下2019-09-09在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群的方法
Elastic stack 俗称 ELK stack,是一组包括 Elasticsearch、Logstash 和 Kibana 在内的开源产品。Elastic Stack 由 Elastic 公司开发和维护。这篇文章主要介绍了如何在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群,需要的朋友可以参考下2019-09-09apache在win2003下的安全设置(配合文件夹权限目录,很好很安全)
众所周知,在windows下当Apache第 一次被安装为服务后,它会以用户“System”(本地系统账号)运行。如果web服务器的所有资源都在本地系统上,这样做会问题比较少,但是将会具有很 大的安全 权限来影响本地机器,因此千万不能开启System帐号的网络权限2012-01-01
最新评论