IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁操作系統(tǒng)LINUX → 使用logrotate管理Linux日志

使用logrotate管理Linux日志

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  對于linux 的系統(tǒng)安全來說,日志文件是極其重要的工具。

  系統(tǒng)管理員可以使用logrotate 程序用來管理系統(tǒng)中的最新的事件。logrotate 還可以用來備份日志文件,本篇將通過以下幾部分來介紹

  日志文件的管理:

  1、logrotate 配置

  2、缺省配置 logrotate

  3、使用include 選項讀取其他配置文件

  4、使用include 選項覆蓋缺省配置

  5、為指定的文件配置轉(zhuǎn)儲參數(shù)

  一、logrotate 配置

  logrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,并創(chuàng)建新的日志文件,我們把它叫做"轉(zhuǎn)儲"。我們可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲,這個過程一般通過 cron 程序來執(zhí)行。

  logrotate 程序還可以用于壓縮日志文件,以及發(fā)送日志到指定的E-mail 。

  logrotate 的配置文件是 /etc/logrotate.conf。主要參數(shù)如下表:

  參數(shù) 功能

  compress 通過gzip 壓縮轉(zhuǎn)儲以后的日志

  nocompress 不需要壓縮時,用這個參數(shù)

  copytruncate 用于還在打開中的日志文件,把當前日志備份并截斷

  nocopytruncate 備份日志文件但是不截斷

  create mode owner group 轉(zhuǎn)儲文件,使用指定的文件模式創(chuàng)建新的日志文件

  nocreate 不建立新的日志文件

  delaycompress 和 compress 一起使用時,轉(zhuǎn)儲的日志文件到下一次轉(zhuǎn)儲時才壓縮

  nodelaycompress 覆蓋 delaycompress 選項,轉(zhuǎn)儲同時壓縮。

  errors address 專儲時的錯誤信息發(fā)送到指定的Email 地址

  ifempty 即使是空文件也轉(zhuǎn)儲,這個是 logrotate 的缺省選項。

  notifempty 如果是空文件的話,不轉(zhuǎn)儲

  mail address 把轉(zhuǎn)儲的日志文件發(fā)送到指定的E-mail 地址

  nomail 轉(zhuǎn)儲時不發(fā)送日志文件

  olddir directory 轉(zhuǎn)儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統(tǒng)

  noolddir 轉(zhuǎn)儲后的日志文件和當前日志文件放在同一個目錄下

  prerotate/endscript 在轉(zhuǎn)儲以前需要執(zhí)行的命令可以放入這個對,這兩個關(guān)鍵字必須單獨成行

  postrotate/endscript 在轉(zhuǎn)儲以后需要執(zhí)行的命令可以放入這個對,這兩個關(guān)鍵字必須單獨成行

  daily 指定轉(zhuǎn)儲周期為每天

  weekly 指定轉(zhuǎn)儲周期為每周

  monthly 指定轉(zhuǎn)儲周期為每月

  rotate count 指定日志文件刪除之前轉(zhuǎn)儲的次數(shù),0 指沒有備份,5 指保留5 個備份

  tabootext [+] list 讓logrotate 不轉(zhuǎn)儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~

  size size 當日志文件到達指定的大小時才轉(zhuǎn)儲,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (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 文件的最開始處,影響整個系統(tǒng)。在本例中就是前面12行。

  第三行weekly 指定所有的日志文件每周轉(zhuǎn)儲一次。

  第五行 rotate 4 指定轉(zhuǎn)儲文件的保留 4份。

  第七行 errors root 指定錯誤信息發(fā)送給root。

  第九行create 指定 logrotate 自動建立新的日志文件,新的日志文件具有和

  原來的文件一樣的權(quán)限。

  第11行 #compress 指定不壓縮轉(zhuǎn)儲文件,如果需要壓縮,去掉注釋就可以了。

  三、使用include 選項讀取其他配置文件

  include 選項允許系統(tǒng)管理員把分散到幾個文件的轉(zhuǎn)儲信息,集中到一個

  主要的配置文件。當 logrotate 從logrotate.conf 讀到include 選項時,會從指定文件讀入配置信息,就好像他們已經(jīng)在/etc/logrotate.conf 中一樣。

  第13行 include /etc/logrotate.d 告訴 logrotate 讀入存放在/etc/logrotate.d 目錄中的日志轉(zhuǎn)儲參數(shù),當系統(tǒng)中安裝了RPM 軟件包時,使用include 選項十分有用。RPM 軟件包的日志轉(zhuǎn)儲參數(shù)一般存放在/etc/logrotate.d 目錄。

  include 選項十分重要,一些應(yīng)用把日志轉(zhuǎn)儲參數(shù)存放在 /etc/logrotate.d 。

  典型的應(yīng)用有:Apache, linuxconf, samba, cron 以及syslog。

  這樣,系統(tǒng)管理員只要管理一個 /etc/logrotate.conf 文件就可以了。

  四、使用include 選項覆蓋缺省配置

  當 /etc/logrotate.conf 讀入文件時,include 指定的文件中的轉(zhuǎn)儲參數(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

  }

  在這個例子中,當 /etc/logrotate.d/linuxconf 文件被讀入時,下面的參數(shù)將覆蓋/etc/logrotate.conf中缺省的參數(shù)。

  Notifempty

  errors jim

  五、為指定的文件配置轉(zhuǎn)儲參數(shù)

  經(jīng)常需要為指定文件配置參數(shù),一個常見的例子就是每月轉(zhuǎn)儲/var/log/wtmp。為特定文件而使用的參數(shù)格式是:

  # 注釋

  /full/path/to/file

  {

  option(s)

  }

  下面的例子就是每月轉(zhuǎn)儲 /var/log/wtmp 一次:

  #Use logrotate to rotate wtmp

  /var/log/wtmp

  {

  monthly

  rotate 1

  }

  六、其他需要注意的問題

  1、盡管花括號的開頭可以和其他文本放在同一行上,但是結(jié)尾的花括號必須單獨成行。

  2、使用 prerotate 和 postrotate 選項

  下面的例子是典型的腳本 /etc/logrotate.d/syslog,這個腳本只是對

  /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

  }

  第一行指定腳本對 /var/log messages 有效

  花ê哦閱誆康慕瘧駒誦杏? /var/log/messages

  prerotate 命令指定轉(zhuǎn)儲以前的動作/usr/bin/chattr -a 去掉/var/log/messages文件的"只追加"屬性 endscript 結(jié)束 prerotate 部分的腳本postrotate 指定轉(zhuǎn)儲后的動作

  /usr/bin/killall -HUP syslogd

  用來重新初始化系統(tǒng)日志守護程序 syslogd

  /usr/bin/chattr +a /var/log/messages

  重新為 /var/log/messages 文件指定"只追加"屬性,這樣防治程序員或用戶覆蓋此文件。

  最后的 endscript 用于結(jié)束 postrotate 部分的腳本

  3、logrotate 的運行分為三步:

  判斷系統(tǒng)的日志文件,建立轉(zhuǎn)儲計劃以及參數(shù),通過cron daemon 運行下面的代碼是 Red Hat linux 缺省的crontab 來每天運行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)掉的話,這個文件就不能產(chǎn)生了。

關(guān)鍵詞標簽:Linux日志

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠程會話使用screen管理你的遠程會話GNU/Linux安裝vmwareGNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠程桌面連如何登錄linux vps圖形界面 Linux遠程桌面連

相關(guān)下載

人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址linux tc實現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負載