logrotate工具的使用

logrotate的简介php

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并建立新的日志文件,咱们把它叫作转储。咱们能够根据日志文件的大小,也能够根据其天数来转储,这个过程通常经过 cron 程序来执行。node

logrotate 程序还能够用于压缩日志文件,以及发送日志到指定的E-mail nginx

logrotate 的配置文件是 /etc/logrotate.conf。主要参数以下表:bash

参数                   功能ide

compress            经过gzip 压缩转储之后的日志php-fpm

nocompress               不须要压缩时,用这个参数工具

copytruncate       用于还在打开中的日志文件,把当前日志备份并截断post

nocopytruncate   备份日志文件可是不截断spa

create mode owner group 转储文件,使用指定的文件模式建立新的日志文件日志

nocreate              不创建新的日志文件

delaycompress compress 一块儿使用时,转储的日志文件到下一次转储时才压缩nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。

errors address     专储时的错误信息发送到指定的Email 地址

ifempty                 即便是空文件也转储,这个是 logrotate 的缺省选项。

notifempty            若是是空文件的话,不转储

mail address         把转储的日志文件发送到指定的E-mail 地址

nomail                  转储时不发送日志文件

olddir directory     转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir                转储后的日志文件和当前日志文件放在同一个目录下

prerotate/endscript     在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行

postrotate/endscript   在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行

daily                     指定转储周期为天天

weekly                 指定转储周期为每周

monthly                指定转储周期为每个月

rotate count          指定日志文件删除以前转储的次数,0 指没有备份,5 指保留5 个备份

tabootext [+] list logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v,

size size               当日志文件到达指定的大小时才转储,Size 能够指定 bytes (缺省)以及KB(sizek)或者MB (sizem).

 

2、logrotate安装

       yum -y install logrotate

 

3、自定义配置:(按需求定制)

[root@gy01 ~]# cd /u1/script/logsplit/

[root@gy01 logsplit]# cat nginx

/u1/logs/ng8080/*.log {

    sharedscripts

    rotate 8

    daily

    postrotate

    /usr/bin/killall-HUP nginx 2> /dev/null || true

    endscript

}

      

       [root@gy01 logsplit]#cat lbnginx

/u1/logs/lbnginx/*.log {

                  sharedscripts

                  rotate7

                   daily

                  postrotate

                   /usr/bin/killall-HUP lbnginx 2> /dev/null || true

                  endscript

}

 

       [root@gy01 logsplit]#cat php-fpm

/u1/logs/php/*.log {

                  sharedscripts

                  rotate7

                   daily

                  postrotate

                  /usr/bin/killall-12 php-fpm 2> /dev/null || true

                  endscript

}

 

       [root@gy01 logsplit]#cat rsync

/u1/script/rsync/logs/*.log {

                   sharedscripts

                  rotate7

                  daily

                  postrotate

                  endscript

}

 

4、定时脚本

       [root@gy01 logsplit]# crontab -e

#split lbnginx log

0      0       *       *      * (bash /u1/script/logsp.sh)

 

       [root@gy01 logsplit]#cat /u1/script/logsp.sh

#!/bin/bash

. ~/.bashrc

/usr/sbin/logrotate -f /u1/script/logsplit/lbnginx

/usr/sbin/logrotate -f/u1/script/logsplit/nginx

/usr/sbin/logrotate -f/u1/script/logsplit/php-fpm

相关文章
相关标签/搜索