最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux使用logrotate來(lái)切割日志文件

 更新時(shí)間:2017年04月22日 15:45:47   作者:wuyuan  
本篇文章主要介紹了Linux使用logrotate來(lái)切割日志文件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

程序在運(yùn)行的時(shí)候?yàn)榱肆私膺\(yùn)行狀態(tài),會(huì)輸出日志文件,時(shí)間久了日志文件會(huì)變得非常大,甚至達(dá)到GB級(jí)別。我在golang應(yīng)用里使用logrus包來(lái)打日志,配置和使用都很方便,就是沒有日志分割的功能,應(yīng)用在線上運(yùn)行一個(gè)月后日志文件都已經(jīng)達(dá)到上百兆。后來(lái)發(fā)現(xiàn)了logrotate,這是centos自帶的日志分割工具,都不用安裝額外組件就能實(shí)現(xiàn)定時(shí)分割日志。

1.運(yùn)行原理

logrotate由系統(tǒng)的cron運(yùn)行,位置在/etc/cron.daily/logrotate

#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
 /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

可以看到入口配置文件是/etc/logrotate.conf,依次運(yùn)行/etc/logrotate.conf.d里的配置文件 如果發(fā)現(xiàn)配置的logrotate沒有執(zhí)行,可以看下系統(tǒng)的crond服務(wù)有沒有開啟

2.配置

如果有安裝nginx,可以參考nginx里的配置例子

/var/log/nginx/*log {
 create 0644 nginx nginx
 daily
 rotate 10
 missingok
 notifempty
 compress
 sharedscripts
 postrotate
  /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
 endscript
}

第一行定義的是日志文件的路徑,可以用*通配,一般可以定義成*.log來(lái)匹配所有日志文件。也可以指定多個(gè)文件,用空格隔開,比如

/var/log/nginx/access.log /var/log/nginx/error.log {
 
}

花括號(hào)里面是日志切割相關(guān)的參數(shù),下面是常用的切割參數(shù)

  1. compress 是否開啟壓縮,壓縮格式gzip
  2. 不開啟壓縮
  3. compresscmd 自定義壓縮命令
  4. compressexty 壓縮文件名后綴
  5. compressoptions 壓縮選項(xiàng)
  6. copy 復(fù)制一份文件
  7. create 后面跟mode owner group,設(shè)置新日志文件的權(quán)限
  8. daily 按天分割
  9. weekly 按周分割
  10. monthly 按月分割
  11. rotate 后面跟數(shù)字,表示需要保留的文件歷史記錄,超過數(shù)量就會(huì)刪除,或者通過郵件發(fā)送
  12. size 后面跟文件大小,比如100k、100M,超過這個(gè)大小后分割
  13. missingok 忽略不存在的文件,不報(bào)錯(cuò)
  14. notifempty 不分割空文件
  15. sharedscripts 配合postrotate、prerotate,讓他們只執(zhí)行一次
  16. postrotate/endscript 文件分割完后,執(zhí)行postrotate、endscript之間的命令
  17. prerotate/endscript 文件分割完前,執(zhí)行prerotate、endscript之間的命令

下面看幾個(gè)例子

/var/log/httpd/error.log {
 rotate 5
 mail i@wuyuans.com
 size=100k
 sharedscripts
 postrotate
  /sbin/killall -HUP httpd
 endscript
}

切割/var/log/httpd/error.log日志文件,超過100k后切割,保留最新的5個(gè)歷史記錄,超過5個(gè)的郵件發(fā)送到fss@qq.com,postrotate里的的命令是為了讓httpd重新打開日志文件。

/var/lib/mysql/mysqld.log {
 # create 600 mysql mysql
 notifempty
 daily
 rotate 3
 missingok
 compress
 postrotate
 # just if mysqld is really running
 if test -x /usr/bin/mysqladmin && \
 /usr/bin/mysqladmin ping &>/dev/null
 then
 /usr/bin/mysqladmin --local flush-error-log \
    flush-engine-log flush-general-log flush-slow-log
 fi
 endscript
}

這是對(duì)mysql日志的切割,每天一份,忽略空文件,保留最新3份,使用gzip壓縮

/home/wuyuan/log/*.log {
 su wuyuan wuyuan
 create 0777 wuyuan wuyuan
 daily
 rotate 10
 olddir /home/wuyuan/log/old
 missingok
 postrotate
 endscript
 nocompress
}

這是我在用的配置項(xiàng),對(duì)log目錄所有.log文件切割,每天一份,保留10份,新文件設(shè)定權(quán)限777,歷史文件保留在old目錄里,這樣可以方便查看。因?yàn)閼?yīng)用程序用的logrus使用append的方式寫日志,所以不需要重新打開日志文件,這點(diǎn)logrus做得很不錯(cuò)。

3.測(cè)試

寫完配置文件后可以手動(dòng)執(zhí)行下,來(lái)驗(yàn)證是否可用。

logrotate -f /etc/logrotate.d/wuyuan

其中-f 表示強(qiáng)制執(zhí)行,其他命令可以用help來(lái)查看

logrotate --help
用法: 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 information
Help options:
 -?, --help Show this help message
 --usage Display brief usage message

沒問題的話日志就會(huì)被移到old目錄下,并帶上日期,之前的log文件會(huì)被清空

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在ubuntu16.04上創(chuàng)建matlab的快捷方式(實(shí)現(xiàn)方法)

    在ubuntu16.04上創(chuàng)建matlab的快捷方式(實(shí)現(xiàn)方法)

    下面小編就為大家分享一篇在ubuntu16.04上創(chuàng)建matlab的快捷方式實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-12-12
  • linux命令下jq的用法及說明

    linux命令下jq的用法及說明

    這篇文章主要介紹了linux命令下jq的用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 重啟Linux服務(wù)器后數(shù)據(jù)消失問題的解決方法(重新掛載)

    重啟Linux服務(wù)器后數(shù)據(jù)消失問題的解決方法(重新掛載)

    在使用 reboot 命令重啟服務(wù)器后,服務(wù)器內(nèi)掛載的文件全部丟失,那應(yīng)該如何重新掛載呢?所以本文小編給大家介紹了重啟Linux服務(wù)器后數(shù)據(jù)消失問題的解決方法,并通過圖文講解的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • Apache中.htaccess文件功能

    Apache中.htaccess文件功能

    .htaccess文件的功能:"分布式配置文件"提供了針對(duì)目錄改變配置的方法,即:在一個(gè)特定的文檔目錄中放置一個(gè)包含一個(gè)或多個(gè)指令的文件,以作用于此目錄及其所有子目錄。
    2011-06-06
  • apache 支持 php5 的配置方法

    apache 支持 php5 的配置方法

    httpd.conf下讓apache 支持 php5 的配置
    2010-03-03
  • 詳解linux下查看系統(tǒng)版本號(hào)信息的方法(總結(jié))

    詳解linux下查看系統(tǒng)版本號(hào)信息的方法(總結(jié))

    本篇文章主要介紹了詳解CentOS下查看系統(tǒng)版本號(hào)信息的方法(總結(jié)),具有一定的參考價(jià)值,有興趣的可以來(lái)了解一下
    2017-07-07
  • Linux內(nèi)核宏container_of的深度剖析

    Linux內(nèi)核宏container_of的深度剖析

    今天小編就為大家分享一篇關(guān)于Linux內(nèi)核宏container_of的深度剖析,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Linux系統(tǒng)命令中tree命令詳解

    Linux系統(tǒng)命令中tree命令詳解

    tree命令以樹狀圖列出文件目錄結(jié)構(gòu)。不過某些Linux上(Centos 6.4)沒有tree命令,下面這篇文章將先進(jìn)行介紹安裝方法,然后詳細(xì)介紹tree命令的使用,有需要的朋友們可以參考借鑒,下面跟著小編來(lái)一起看看吧。
    2016-12-12
  • Linux SecureCRT顯示亂碼解決方案

    Linux SecureCRT顯示亂碼解決方案

    這篇文章主要介紹了Linux SecureCRT顯示亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • ubuntu14.04 使用中遇到的問題及解決方法集錦

    ubuntu14.04 使用中遇到的問題及解決方法集錦

    這篇文章主要介紹了ubuntu14.04 使用中遇到的問題及解決方法集錦,需要的朋友可以參考下
    2014-10-10

最新評(píng)論

安义县| 闸北区| 宁晋县| 隆昌县| 临江市| 通城县| 长武县| 民和| 永福县| 崇文区| 交口县| 肇州县| 林甸县| 铜陵市| 金华市| 滨海县| 静安区| 灵璧县| 四平市| 陵川县| 闽侯县| 泰来县| 崇礼县| 皮山县| 景谷| 双桥区| 赤水市| 武穴市| 土默特左旗| 海原县| 衡南县| 肇东市| 河西区| 高州市| 蛟河市| 九寨沟县| 平阴县| 池州市| 双流县| 教育| 成武县|