麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

Linux使用logrotate來切割日志文件

2024-09-05 23:03:48
字體:
來源:轉載
供稿:網友

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

1.運行原理

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

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

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

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來匹配所有日志文件。也可以指定多個文件,用空格隔開,比如

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

花括號里面是日志切割相關的參數,下面是常用的切割參數

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

下面看幾個例子

/var/log/httpd/error.log { rotate 5 mail [email protected] size=100k sharedscripts postrotate  /sbin/killall -HUP httpd endscript}

切割/var/log/httpd/error.log日志文件,超過100k后切割,保留最新的5個歷史記錄,超過5個的郵件發(fā)送到[email protected],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}

這是對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}

這是我在用的配置項,對log目錄所有.log文件切割,每天一份,保留10份,新文件設定權限777,歷史文件保留在old目錄里,這樣可以方便查看。因為應用程序用的logrus使用append的方式寫日志,所以不需要重新打開日志文件,這點logrus做得很不錯。

3.測試

寫完配置文件后可以手動執(zhí)行下,來驗證是否可用。

logrotate -f /etc/logrotate.d/wuyuan

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

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 informationHelp options: -?, --help Show this help message --usage Display brief usage message

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲精品7777| 亚洲成人自拍电影 | 欧美一区二区片 | 成人综合在线观看 | 91精品视频在线看 | 香蕉视频99 | 免费黄色小视频网站 | 午夜精品小视频 | 国产亚洲精品久久久久5区 综合激情网 | 国产精品久久久久久久久久iiiii | 亚洲成人免费网站 | 中文在线国产 | 黄色av免费网站 | 在线观看国产一区二区 | 色就操| 国产亚洲综合精品 | 国产精品伊人久久 | 久久久久久久爱 | 国产日韩免费观看 | 色婷婷久久久亚洲一区二区三区 | 国产一区二区三区视频观看 | 免费专区 - 91爱爱 | 第一区免费在线观看 | 欧美一级片免费在线观看 | 99影视电影电视剧在线播放 | 欧美成人理论片乱 | 久久久久av电影 | 中文字幕涩涩久久乱小说 | 最新中文字幕第一页视频 | 手机av免费电影 | 黄色7777| 看中国一级毛片 | 国产一级二级视频 | 欧美性黄| 国产精品视频成人 | 91 免费看片 | 国产毛毛片一区二区三区四区 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 国产99久久精品一区二区 | 在线观看国产一区二区三区 | 少妇色诱麻豆色哟哟 |