1 工具目录

***系统开启selinux,logrotate会不生效***

linux默认会安装logrotate工具,自身的boot.log就是通过它分割转储的。

[root@webmaster log]# ll| grep boot
-rw-------. 1 root   root         0 Jun 25 03:33 boot.log
-rw-------. 1 root   root     81499 Jun 23 03:20 boot.log-20180623
-rw-------. 1 root   root     28340 Jun 24 03:38 boot.log-20180624
-rw-------. 1 root   root         0 Jun 25 03:33 boot.log-20180625

主配置文件为/etc/logrotate.conf,还有个目录/etc/logrotate.d/。系统会按应用,在这个目录中创建转储配置文件。

-rw-r--r--  1 root root 160 Jan 31  2017 chrony
-rw-r--r--  1 root root 194 Oct 20  2017 httpd
-rw-r--r--  1 root root 868 Feb  4 10:33 mysql
-rw-r--r--  1 root root 351 Oct 17  2017 nginx
-rw-r--r--  1 root root 203 Mar  7 21:37 php-fpm
-rw-r--r--. 1 root root 136 Jun 10  2014 ppp
-rw-r--r--  1 root root 224 May 10  2017 syslog
-rw-r--r--  1 root root 100 Oct 18  2017 wpa_supplicant
-rw-r--r--  1 root root 100 Jan 30 21:51 yum

  

2 转储配置

2.1 nginx

[root@webmaster logrotate.d]# cat nginx
/app/nginx/logs/*.log{dailymissingokrotate 30compressdelaycompressnotifemptydateextsharedscriptspostrotateif [ -f /app/nginx/logs/nginx.pid ]; thenkill -USR1 `cat /app/nginx/logs/nginx.pid`fiendscript
}

  

/app/nginx/logs/*.log
#文件匹配
daliy    按天分割

missingok  日志为空则不转储
rotate 30  转储周期30天,过期日志自动删除
compress  通过gz格式压缩, 文件名如:jab.com.log-20180625.gz
dateext  文件名按日期命令,如jab.com.log-20180625.gz
postrotate  转储后执行命令,这个是给nginx发送reopen log file信号。

3 logrotate命令

[root@webmaster logs]# logrotate -?
Usage: logrotate [OPTION...] <configfile>-d, --debug               Don't do anything, just test (implies -v)-f, --force               Force file rotation-m, --mail=command        Command to send mail (instead of `/bin/mail')-s, --state=statefile     Path of state file-v, --verbose             Display messages during rotation-l, --log=STRING          Log file--version                 Display version informationHelp options:-?, --help                Show this help message--usage                   Display brief usage message

  

在写完一个配置文件后,要用debug检查一下,然后用verbose或者force切割试一下。

[root@webmaster logrotate.d]# logrotate -d /etc/logrotate.d/nginx
reading config file /etc/logrotate.d/nginx
Allocating hash table for state file, size 15360 BHandling 1 logsrotating pattern: /app/nginx/logs/*.log after 1 days (30 rotations)
empty log files are not rotated, old logs are removed
considering log /app/nginx/logs/error.loglog does not need rotating (log has been already rotated)considering log /app/nginx/logs/jab.com.loglog does not need rotating (log has been already rotated)not running postrotate script, since no logs were rotated[root@webmaster logrotate.d]# logrotate -f /etc/logrotate.d/nginx

  

--end:所有参数参考--

compress                                   通过gzip 压缩转储以后的日志
nocompress                                不做gzip压缩处理
copytruncate                              用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
nocopytruncate                           备份日志文件不过不截断
create mode owner group             轮转时指定创建新文件的属性,如create 0777 nobody nobody
nocreate                                    不建立新的日志文件
delaycompress                           和compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress                        覆盖 delaycompress 选项,转储同时压缩。
missingok                                 如果日志丢失,不报错继续滚动下一个日志
errors address                           专储时的错误信息发送到指定的Email 地址
ifempty                                    即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
notifempty                               当日志文件为空时,不进行轮转
mail address                             把转储的日志文件发送到指定的E-mail 地址
nomail                                     转储时不发送日志文件
olddir directory                         转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir                                   转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts                           运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
prerotate                                 在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
postrotate                               在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
daily                                       指定转储周期为每天
weekly                                    指定转储周期为每周
monthly                                  指定转储周期为每月
rotate count                            指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
dateext                                  使用当期日期作为命名格式
dateformat .%s                       配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数
size(或minsize) log-size            当日志文件到达指定的大小时才转储,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
当日志文件 >= log-size 的时候就转储。 以下为合法格式:(其他格式的单位大小写没有试过)
size = 5 或 size 5 (>= 5 个字节就转储)
size = 100k 或 size 100k
size = 100M 或 size 100M

转载于:https://www.cnblogs.com/jabbok/p/9223538.html

logrotate日志转储相关推荐

  1. logrotate测试_logrotate日志转储

    logrotate日志转储 1.概述 日志文件是Linux系统中最重要的一种生成文件,它包含了系统中发生事件的所有信息,在排故和系统性能分析等过程中具有极大的价值.对于日志产生量比较大的服务器,存储的 ...

  2. 如何使用系统自带的日志转储功能logroate.存放应用日志

    Linux日志服务介绍 1. 在Linux系统,大部分日志都是由syslog日志服务驱动和管理的 syslog服务由两个重要的配置文件控制管理,分别是/etc/syslog.conf主配置文件和/et ...

  3. Linux Logrotate日志切割管理

    Logrotate 是 linux 系统用来分割日志的系统工具.Logrotate 可以设置为每天.每周.每月或当日志文件达到一定的大小时处理日志文件,提供自动压缩.删除.分割日志文件的功能.一般 C ...

  4. Logrotate日志切割

    Logrotate日志切割 1. 配置文件 1.1 配置放在那里 1.2 配置文件参数含义 2. 范例 3. 手动触发测试 在Linux下,日志会不停的增长,为了防止日志文件过大,导致我们无法在日志中 ...

  5. logrotate日志轮转策略

    2019独角兽企业重金招聘Python工程师标准>>> 实战:logrotate 日志轮转及配置 1,编写系统日志的配置文件 /etc/rsyslog.conf 2,写入配置 [ro ...

  6. linux日志怎么进行转储,Linux logrotate命令用法详解:进行日志转储(轮替)

    日志轮替之所以可以在指定的时间备份日志,是因为其依赖系统定时任务.如果大家还记得 /etc/cron.daily/ 目录,就会发现这个目录中是有 logrotate 文件的,查看一下这个文件,命令如下 ...

  7. Linux logrotate日志切割详解

    1,对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己 ...

  8. Syslog-ng+Rsyslog收集日志:logrotate日志切割、轮询(七)

    很多软件都自带切割日志,比如tomcat可以按时间来命名.rsyslog可按日期生成文件,但是并不支持用"%$year%-%$month%-%$day%"这些变量来读取文件(目前版 ...

  9. wordpress所属权限改为nginx_linux运维之logrotate日志轮替——对nginx日志进行轮替-linux运维...

    linux系统上有一个非常好用的轮替服务--logrotate.通过这个服务,可以对日志文件进行轮替管理.当日志文件过大时,可以对其进行切割成多个小的日志文件,还可以对其进行压缩处理.nginx默认的 ...

  10. logrotate日志轮转

    好久不用都快忘了怎么用了,看下原来自己的文档,整理后发出来 #vim /etc/crontab        这个文件里可以指定计划任务的开始时间 #vim /etc/logrotate.d/test ...

最新文章

  1. 【混沌加解密调制解调】基于FPGA的混沌自同步混沌数字保密通信系统
  2. 斐波那契数列python递归 0、1、1、2、3_python实现斐波那契数列的多种方式
  3. 先序,中序,后序线索二叉树
  4. Val编程-界面编程
  5. 重磅! SpringBoot+Sentinel+Nacos已撸完
  6. 在每个运行中运行多个查询_linux系统中运行级别介绍
  7. 五子棋服务端程序java_9网上五子棋对战(java)服务端源码
  8. 老师使用计算机给小孩子上课,“某某中学教师课堂教学现状”调查问卷
  9. oracle11g临时表,oracle11G的临时表空间
  10. MATLAB常用的基本数学函数
  11. cdh 安装_使用Cloudera的CDH部署Hadoop:第二步,安装JDK
  12. Nginx @ Https
  13. 课程设计 计算机公共基础,基于Moodle大学计算机公共基础课程设计.pdf
  14. 电子海图与雷达图像的融合显示
  15. 数据库建模多表一对多和多对一、一对一、多对多
  16. ArcGIS Server 10.8.1安装
  17. 百度搜索引擎排名规则,最新排名与优化的因素有哪些?
  18. 高频PCB设计设计技巧简述
  19. c语言程序发生算术溢出,谈谈C语言的溢出
  20. 云时代的阡陌纵横”的数据网络?

热门文章

  1. pandas--groupby相关操作
  2. While 1比While True快?
  3. python:使用split以.划分句子、对列表进行切片
  4. Latex:插入数学公式
  5. we8iso8859p1 java_字符集WE8ISO8859P1 是不能改为ZHS16GBK的
  6. node mysql sequlize_初步使用Sequelize模块 - Node实战
  7. varchar长度可以任意设置吗_户内金属软管长度可以超过2m吗?
  8. python读取txt文件报错:UnicodeDecodeError: 'utf8' codec can't decode byte 0xb3 in position 0的解决方法
  9. SQL Server 2017 AlwaysOn AG 自动初始化(九)
  10. 怎么对ChannelHandler做测试?