日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Logrotate 对服务器日志按照小时切割并压缩

發(fā)布時間:2024/4/18 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Logrotate 对服务器日志按照小时切割并压缩 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景介紹

?

對于互聯(lián)網(wǎng)小公司而言,對于服務日志的處理一般都不咋樣,在微服務使用之后之后可能稍微好一些,但還是有很多傳統(tǒng)的服務,如:Tomcat,Nginx 等在日志處理的時候仍然不是很友好。主要是很多時候開發(fā)需要查看線上服務的日志便于查找 BUG,所以我們很多時候不是在查日志就是查日志的路上。

為了便于開發(fā)自己去查看日志于是便使用 Nginx 做了個日志下載站點。但是問題再次來了,那就是日志量太大,不好下載。怎么辦?壓縮唄。畢竟純文本壓縮比率超級高,100M 的文件能夠壓縮到幾 M 不香嗎?

但是即使壓縮之后,解壓后仍然很多,我們可能只需要查看的是幾點到幾點的,其它的對于我們沒有意義。要是能夠按照小時再切割一下就好了。

于是想到了 Linux 的 logrotate。但是默認的規(guī)則好像并不能滿足我們的需求,因為它最低的時間也是按天計算的。

這時候就需要另外一個東西了,crontab 定時任務。

?

?

關于 logrotate

?

一般在服務器初始化的時候這些工具都已經(jīng)存在的,但是為了保險,還是手動安裝一下:

yum -y install logrotate

服務簡單的說明:

服務的主配置文件:/etc/logrotate.conf?

在主配置中可以看到?include /etc/logrotate.d 說明我們可以將用戶定義的配置直接放到這下面,系統(tǒng)會自動為我們執(zhí)行。當然,系統(tǒng)的并不能很好的滿足我們需求。

再看看配置模板:

日志文件絕對路徑 {各種參數(shù)... }

參數(shù)包含:

參數(shù)說明
compress日志輪替時候對舊日志就行 gzip 壓縮
nocompress不壓縮
daily按天輪替
dateext使用當前日期命名舊日志
dateformat .%s對日期進行格式定制
ifempty日志沒有內容的時候也進行輪替
notifempty日志是空的就不輪替
mail將輪替后的文件發(fā)送到指定E-mail地址
nomail不發(fā)郵件
copytruncate輪替時候先拷貝日志,備份拷貝文件,在清空本來的文件,這樣不會導致輪替后原文件消失,缺點就是可能丟失小部分日志
monthly一個月輪替一次
olddir輪替后日志文件放入指定的目錄
rotate輪替最多保留之前的數(shù)據(jù)幾次
size當日志增長到指定大小的時候開始輪替
weekly按周輪替
yearly按年輪替
Missingok如果日志丟失,不報錯繼續(xù)滾動下一個日志

?

?

切割 Tomcat 日志示例?

?

說明:

1. 服務器上面有這樣一個 tomcat 日志:/data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/catalina.out

2. 我們想將這個文件按每兩小時切割一次并壓縮,保留 100 個舊的切割,切割的文件保存到:/data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/archives 目錄下。

?

開始配置:

1. 添加 logrotate 配置文件:

vi /etc/logrotate.d/tomcat

內容如下:

# MALL LOGROTATE /data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/catalina.out {notifempty copytruncaterotate 100missingokcompressdateextdateformat .%Y%m%d-%Holddir /data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/archives }

紅色部分需要注意,第一個是為了輪替之后原文件還存在,第二個為壓縮,第三個定義切割后文件的名稱。

?

2. 手動執(zhí)行一次輪替:

/usr/sbin/logrotate -vf /etc/logrotate.d/tomcat

這里如果報錯:because parent directory has insecure permissions (It's world writable or writable by group which is not "root")?

只需要在配置中參數(shù)加入:

su root root

?

3. 查看輪替后效果:

可以看到原本 300M 左右的被壓縮到 64 M。

?

4. 加入定時任務:

crontab -e

內容如下:

# LOGROTATE 0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /tmp/logrotate.log

?

這樣就能每隔兩小時輪替一次了!?

總結

以上是生活随笔為你收集整理的Logrotate 对服务器日志按照小时切割并压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。