Logrotate日志輪詢切割工具

在平時(shí)處理運(yùn)維工作當(dāng)中参淹,必不可少的就是日志切割,不然一個(gè)日志文件幾十個(gè)G乏悄,不僅不方便查詢?nèi)罩拘畔⒄阒担乙膊焕谧鋈罩颈4妗jP(guān)于在Linux上做日志切割之外檩小,除了手搓切割腳本开呐,還有就是Linux系統(tǒng)自帶的一個(gè)切割工具Logrotate。

Logrotate簡單說明

Logrotate可以對日志進(jìn)行輪轉(zhuǎn)规求、壓縮和刪除筐付,還可以將日志發(fā)送到指定郵箱。
-- 可以按照時(shí)間進(jìn)行分割阻肿;
-- 可以按照日志文件大小進(jìn)行分割瓦戚。

Logrotate配置管理

工欲善其事,必先利其器丛塌。所以我們要先要著手了解一下Logrotate的相關(guān)信息较解,通過了解之后才能根據(jù)各個(gè)場景靈活的使用這個(gè)工具。
Logrotate的相關(guān)文件\目錄(如果需要查找所有與之相關(guān)的文件信息可以通過rpm -ql logrotate進(jìn)行查看)

定時(shí)任務(wù):/etc/cron.daily/logrotate
配置文件:/etc/logrotate.conf
配置目錄:/etc/logrotate.d
執(zhí)行文件:/usr/sbin/logrotate
日志文件:/var/lib/logrotate/logrotate.status

我可以通過查看/etc/logrotate.conf來查看相關(guān)的配置信息

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

我們可以通過上面查看到赴邻,Logrotate有個(gè)配置目錄印衔,進(jìn)入目錄之后,可以看到一些已經(jīng)創(chuàng)建好的日志切割的規(guī)則文件姥敛,也可以通過這些設(shè)置好的配置文件來學(xué)習(xí)奸焙,如何自己寫一個(gè)配置文件,接下來我們通過對一個(gè)自定義的日志文件進(jìn)行切割測試徒溪。

根據(jù)大小切割

因?yàn)槲募笮】梢员容^自由的控制忿偷,所以用來測試日志切割再好不過了。

首先我們在/etc/logrotate.d下創(chuàng)建一個(gè)自定義的配置文件onlyproject(即:vim /etc/Logrotate.d/onlyproject)臊泌,并寫入以下內(nèi)容

# 指定日志文件位置(絕對路徑)
/var/log/onlyproject.log { 
    daily
    rotate 10
    size +10M
    compress
    delaycompress
    missingok
    notifempty
    create 0600 root root
}

其他參數(shù)選項(xiàng)

compress                 通過gzip 壓縮轉(zhuǎn)儲以后的日志
nocompress               不做gzip壓縮處理
copytruncate             用于還在打開中的日志文件鲤桥,把當(dāng)前日志備份并截?cái)啵皇窍瓤截愒偾蹇盏姆绞角牛截惡颓蹇罩g有一個(gè)時(shí)間差茶凳,                          可能會丟失部分日志數(shù)據(jù)。
nocopytruncate          備份日志文件不過不截?cái)?create mode owner group  輪轉(zhuǎn)時(shí)指定創(chuàng)建新文件的屬性播揪,如create 0777 nobody nobody
nocreate                 不建立新的日志文件
delaycompress            和compress 一起使用時(shí)贮喧,轉(zhuǎn)儲的日志文件到下一次轉(zhuǎn)儲時(shí)才壓縮
nodelaycompress          覆蓋 delaycompress 選項(xiàng),轉(zhuǎn)儲同時(shí)壓縮
missingok                如果日志丟失猪狈,不報(bào)錯繼續(xù)滾動下一個(gè)日志
errors address           專儲時(shí)的錯誤信息發(fā)送到指定的Email 地址
ifempty                  即使日志文件為空文件也做輪轉(zhuǎn)箱沦,這個(gè)是logrotate的缺省選項(xiàng)。
notifempty               當(dāng)日志文件為空時(shí)雇庙,不進(jìn)行輪轉(zhuǎn)
mail address             把轉(zhuǎn)儲的日志文件發(fā)送到指定的E-mail 地址
nomail                   轉(zhuǎn)儲時(shí)不發(fā)送日志文件
olddir directory         轉(zhuǎn)儲后的日志文件放入指定的目錄谓形,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
noolddir                 轉(zhuǎn)儲后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下
sharedscripts            運(yùn)行postrotate腳本灶伊,作用是在所有日志都輪轉(zhuǎn)后統(tǒng)一執(zhí)行一次腳本。如果沒有配置這個(gè)寒跳,那么每個(gè)日志輪轉(zhuǎn)后                         都會執(zhí)行一次腳本
prerotate                在logrotate轉(zhuǎn)儲之前需要執(zhí)行的指令聘萨,例如修改文件的屬性等動作;必須獨(dú)立成行
postrotate               在logrotate轉(zhuǎn)儲之后需要執(zhí)行的指令童太,例如重新啟動 (kill -HUP) 某個(gè)服務(wù)米辐!必須獨(dú)立成行
daily                    指定轉(zhuǎn)儲周期為每天
weekly                   指定轉(zhuǎn)儲周期為每周
monthly                  指定轉(zhuǎn)儲周期為每月
rotate count             指定日志文件刪除之前轉(zhuǎn)儲的次數(shù),0 指沒有備份书释,5 指保留5 個(gè)備份
dateext                  使用當(dāng)期日期作為命名格式
dateformat .%s           配合dateext使用翘贮,緊跟在下一行出現(xiàn),定義文件切割后的文件名爆惧,必須配合dateext使用择膝,只支持 %Y %m %d %s 這四個(gè)參數(shù)
size(或minsize) log-size 當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲

測試是否可正常切割

# 首先將/var/log/onlyproject.log填充為一個(gè)15M大小的文件
head -c 15M < /dev/urandom >> /var/log/onlyproject.log # dd if=/dev/zero of=/var/log/onlyproject.log bs=1M count=15

然后強(qiáng)制執(zhí)行Logrotate

logrotate -f /etc/logrotate.d/onlyproject
[root@localhost log]# ll -h only*
-rw------- 1 root root   0 10月 24 10:54 onlyproject.log
-rw-r--r-- 1 root root 16M 10月 24 10:54 onlyproject.log-20221024.gz

我們通過查看/var/log/下的內(nèi)容,可以看到已經(jīng)生成了一個(gè)輪詢后的gz包检激。

補(bǔ)充

在配置文件中我們也可以配置一下腳本進(jìn)行操作,例如以下nginx和httpd(這兩個(gè)配置文件都是在服務(wù)創(chuàng)建完成后自動添加的)的切割配置文件中

# Nginx
...
postrotate
    /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
...

# Httpd
...
postrotate
    /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腹侣,一起剝皮案震驚了整個(gè)濱河市叔收,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌傲隶,老刑警劉巖饺律,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異跺株,居然都是意外死亡复濒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門乒省,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巧颈,“玉大人,你說我怎么就攤上這事袖扛≡曳海” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵蛆封,是天一觀的道長唇礁。 經(jīng)常有香客問我,道長惨篱,這世上最難降的妖魔是什么盏筐? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮砸讳,結(jié)果婚禮上琢融,老公的妹妹穿的比我還像新娘界牡。我一直安慰自己,他們只是感情好吏奸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布欢揖。 她就那樣靜靜地躺著,像睡著了一般奋蔚。 火紅的嫁衣襯著肌膚如雪她混。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天泊碑,我揣著相機(jī)與錄音坤按,去河邊找鬼。 笑死馒过,一個(gè)胖子當(dāng)著我的面吹牛臭脓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腹忽,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼来累,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了窘奏?” 一聲冷哼從身側(cè)響起嘹锁,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎着裹,沒想到半個(gè)月后领猾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骇扇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年摔竿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片少孝。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡继低,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出韭山,到底是詐尸還是另有隱情郁季,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布钱磅,位于F島的核電站梦裂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盖淡。R本人自食惡果不足惜年柠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冗恨,春花似錦答憔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至傲武,卻和暖如春蓉驹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揪利。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工态兴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疟位。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓瞻润,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甜刻。 傳聞我的和親對象是個(gè)殘疾皇子绍撞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容