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

相關文章
相關標籤/搜索