logrotate实现日志切割方式(转储)

 更新时间:2023年05月11日 09:20:27   作者:运维@小兵  
这篇文章主要介绍了logrotate实现日志切割方式(转储),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • CentOs下安装gcc/g++/gdb的方法

    CentOs下安装gcc/g++/gdb的方法

    这篇文章主要介绍了CentOs下安装gcc/g++/gdb的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • Linux服务器安装PHP MongoDB扩展的方法

    Linux服务器安装PHP MongoDB扩展的方法

    这篇文章主要介绍了Linux服务器安装PHP MongoDB扩展的方法,需要的朋友可以参考下
    2016-11-11
  • shell免交互的实现

    shell免交互的实现

    本文主要介绍了shell免交互的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • CentOS 6.5配置本地Yum源教程

    CentOS 6.5配置本地Yum源教程

    这篇文章主要为大家详细介绍了CentOS 6.5配置本地Yum源教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Linux之操作文件的系统调用

    Linux之操作文件的系统调用

    大家好,本篇文章主要讲的是Linux之操作文件的系统调用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • linux中把.c的文件编译成.so文件

    linux中把.c的文件编译成.so文件

    这篇文章主要介绍了linux中把.c的文件编译成.so文件的相关资料,本文以编译mylib.c为例讲如何编译.so文件,感兴趣的朋友跟随程序员之家小编一起学习吧
    2018-05-05
  • 解决Linux+Apache服务器URL区分大小写问题

    解决Linux+Apache服务器URL区分大小写问题

    Linux服务器的大小写敏感有时候很不方便,在地址栏里一定要输入准确的URL才能访问,对搜索引擎和用户不是很友好,那么如何解决LINUX服务器URL的大小写问题
    2020-01-01
  • ubuntu 20.04上搭建LNMP环境的方法步骤

    ubuntu 20.04上搭建LNMP环境的方法步骤

    这篇文章主要介绍了ubuntu 20.04上搭建LNMP环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。这篇文章主要介绍了Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示 ,需要的朋友可以参考下
    2019-07-07
  • 详解Ubuntu下ssh服务的安装与登陆(ssh远程登陆)

    详解Ubuntu下ssh服务的安装与登陆(ssh远程登陆)

    本篇文章主要介绍了Ubuntu下ssh服务的安装与登陆,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11

最新评论

?


http://www.vxiaotou.com