時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
對(duì)于linux 的系統(tǒng)安全來(lái)說(shuō),日志文件是極其重要的工具。
系統(tǒng)管理員可以使用logrotate 程序用來(lái)管理系統(tǒng)中的最新的事件。logrotate 還可以用來(lái)備份日志文件,本篇將通過(guò)以下幾部分來(lái)介紹
日志文件的管理:
1、logrotate 配置
2、缺省配置 logrotate
3、使用include 選項(xiàng)讀取其他配置文件
4、使用include 選項(xiàng)覆蓋缺省配置
5、為指定的文件配置轉(zhuǎn)儲(chǔ)參數(shù)
一、logrotate 配置
logrotate 程序是一個(gè)日志文件管理工具。用來(lái)把舊的日志文件刪除,并創(chuàng)建新的日志文件,我們把它叫做"轉(zhuǎn)儲(chǔ)"。我們可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來(lái)轉(zhuǎn)儲(chǔ),這個(gè)過(guò)程一般通過(guò) cron 程序來(lái)執(zhí)行。
logrotate 程序還可以用于壓縮日志文件,以及發(fā)送日志到指定的E-mail 。
logrotate 的配置文件是 /etc/logrotate.conf。主要參數(shù)如下表:
參數(shù) 功能
compress 通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志
nocompress 不需要壓縮時(shí),用這個(gè)參數(shù)
copytruncate 用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?/p>
nocopytruncate 備份日志文件但是不截?cái)?/p>
create mode owner group 轉(zhuǎn)儲(chǔ)文件,使用指定的文件模式創(chuàng)建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用時(shí),轉(zhuǎn)儲(chǔ)的日志文件到下一次轉(zhuǎn)儲(chǔ)時(shí)才壓縮
nodelaycompress 覆蓋 delaycompress 選項(xiàng),轉(zhuǎn)儲(chǔ)同時(shí)壓縮。
errors address 專儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email 地址
ifempty 即使是空文件也轉(zhuǎn)儲(chǔ),這個(gè)是 logrotate 的缺省選項(xiàng)。
notifempty 如果是空文件的話,不轉(zhuǎn)儲(chǔ)
mail address 把轉(zhuǎn)儲(chǔ)的日志文件發(fā)送到指定的E-mail 地址
nomail 轉(zhuǎn)儲(chǔ)時(shí)不發(fā)送日志文件
olddir directory 轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
noolddir 轉(zhuǎn)儲(chǔ)后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下
prerotate/endscript 在轉(zhuǎn)儲(chǔ)以前需要執(zhí)行的命令可以放入這個(gè)對(duì),這兩個(gè)關(guān)鍵字必須單獨(dú)成行
postrotate/endscript 在轉(zhuǎn)儲(chǔ)以后需要執(zhí)行的命令可以放入這個(gè)對(duì),這兩個(gè)關(guān)鍵字必須單獨(dú)成行
daily 指定轉(zhuǎn)儲(chǔ)周期為每天
weekly 指定轉(zhuǎn)儲(chǔ)周期為每周
monthly 指定轉(zhuǎn)儲(chǔ)周期為每月
rotate count 指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份,5 指保留5 個(gè)備份
tabootext [+] list 讓logrotate 不轉(zhuǎn)儲(chǔ)指定擴(kuò)展名的文件,缺省的擴(kuò)展名是:.rpm-orig, .rpmsave, v, 和 ~
size size 當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲(chǔ),Size 可以指定 bytes (缺省)以及KB (sizek)或者M(jìn)B (sizem).
二、缺省配置 logrotate
logrotate 缺省的配置文件 /etc/logrotate.conf。
Red Hat linux 缺省安裝的文件內(nèi)容是:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
1
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own lastlog or wtmp --we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/lastlog {
monthly
rotate 1
}
# system-specific logs may be configured here
缺省的配置一般放在logrotate.conf 文件的最開始處,影響整個(gè)系統(tǒng)。在本例中就是前面12行。
第三行weekly 指定所有的日志文件每周轉(zhuǎn)儲(chǔ)一次。
第五行 rotate 4 指定轉(zhuǎn)儲(chǔ)文件的保留 4份。
第七行 errors root 指定錯(cuò)誤信息發(fā)送給root。
第九行create 指定 logrotate 自動(dòng)建立新的日志文件,新的日志文件具有和
原來(lái)的文件一樣的權(quán)限。
第11行 #compress 指定不壓縮轉(zhuǎn)儲(chǔ)文件,如果需要壓縮,去掉注釋就可以了。
三、使用include 選項(xiàng)讀取其他配置文件
include 選項(xiàng)允許系統(tǒng)管理員把分散到幾個(gè)文件的轉(zhuǎn)儲(chǔ)信息,集中到一個(gè)
主要的配置文件。當(dāng) logrotate 從logrotate.conf 讀到include 選項(xiàng)時(shí),會(huì)從指定文件讀入配置信息,就好像他們已經(jīng)在/etc/logrotate.conf 中一樣。
第13行 include /etc/logrotate.d 告訴 logrotate 讀入存放在/etc/logrotate.d 目錄中的日志轉(zhuǎn)儲(chǔ)參數(shù),當(dāng)系統(tǒng)中安裝了RPM 軟件包時(shí),使用include 選項(xiàng)十分有用。RPM 軟件包的日志轉(zhuǎn)儲(chǔ)參數(shù)一般存放在/etc/logrotate.d 目錄。
include 選項(xiàng)十分重要,一些應(yīng)用把日志轉(zhuǎn)儲(chǔ)參數(shù)存放在 /etc/logrotate.d 。
典型的應(yīng)用有:apache, linuxconf, samba, cron 以及syslog。
這樣,系統(tǒng)管理員只要管理一個(gè) /etc/logrotate.conf 文件就可以了。
四、使用include 選項(xiàng)覆蓋缺省配置
當(dāng) /etc/logrotate.conf 讀入文件時(shí),include 指定的文件中的轉(zhuǎn)儲(chǔ)參數(shù)將覆蓋缺省的參數(shù),如下例:
# linuxconf 的參數(shù)
/var/log/htmlaccess.log
{ errors jim
notifempty
nocompress
weekly
prerotate
/usr/bin/chattr -a /var/log/htmlaccess.log
endscript
postrotate
/usr/bin/chattr +a /var/log/htmlaccess.log
endscript
}
/var/log/netconf.log
{ nocompress
monthly
}
在這個(gè)例子中,當(dāng) /etc/logrotate.d/linuxconf 文件被讀入時(shí),下面的參數(shù)將覆蓋/etc/logrotate.conf中缺省的參數(shù)。
Notifempty
errors jim
五、為指定的文件配置轉(zhuǎn)儲(chǔ)參數(shù)
經(jīng)常需要為指定文件配置參數(shù),一個(gè)常見的例子就是每月轉(zhuǎn)儲(chǔ)/var/log/wtmp。為特定文件而使用的參數(shù)格式是:
# 注釋
/full/path/to/file
{
option(s)
}
下面的例子就是每月轉(zhuǎn)儲(chǔ) /var/log/wtmp 一次:
#Use logrotate to rotate wtmp
/var/log/wtmp
{
monthly
rotate 1
}
六、其他需要注意的問(wèn)題
1、盡管花括號(hào)的開頭可以和其他文本放在同一行上,但是結(jié)尾的花括號(hào)必須單獨(dú)成行。
2、使用 prerotate 和 postrotate 選項(xiàng)
下面的例子是典型的腳本 /etc/logrotate.d/syslog,這個(gè)腳本只是對(duì)
/var/log/messages 有效。
/var/log/messages
{
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
postrotate
/usr/bin/kill -HUP syslogd
/usr/bin/chattr +a /var/log/messages
endscript
}
第一行指定腳本對(duì) /var/log messages 有效
花ê哦閱誆康慕瘧駒誦杏? /var/log/messages
prerotate 命令指定轉(zhuǎn)儲(chǔ)以前的動(dòng)作/usr/bin/chattr -a 去掉/var/log/messages文件的"只追加"屬性 endscript 結(jié)束 prerotate 部分的腳本postrotate 指定轉(zhuǎn)儲(chǔ)后的動(dòng)作
/usr/bin/killall -HUP syslogd
用來(lái)重新初始化系統(tǒng)日志守護(hù)程序 syslogd
/usr/bin/chattr +a /var/log/messages
重新為 /var/log/messages 文件指定"只追加"屬性,這樣防治程序員或用戶覆蓋此文件。
最后的 endscript 用于結(jié)束 postrotate 部分的腳本
3、logrotate 的運(yùn)行分為三步:
判斷系統(tǒng)的日志文件,建立轉(zhuǎn)儲(chǔ)計(jì)劃以及參數(shù),通過(guò)cron daemon 運(yùn)行下面的代碼是 Red Hat linux 缺省的crontab 來(lái)每天運(yùn)行l(wèi)ogrotate。
#/etc/cron.daily/logrotate
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
4、/var/log/messages 不能產(chǎn)生的原因:
這種情況很少見,但是如果你把/etc/services 中的 514/UDP 端口關(guān)掉的話,這個(gè)文件就不能產(chǎn)生了。
關(guān)鍵詞標(biāo)簽:Linux日志
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號(hào)與MAC地址 dmidecode命令查看內(nèi)存型號(hào) linux tc實(shí)現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載