logrotate引數說明

2021-10-06 17:57:37 字數 2014 閱讀 3445

linux系統中,軟體執行的時候會產生日誌檔案,而這些軟體本身對日誌不進行分割或者壓縮處理,久而久之會導致日誌檔案異常巨大,影響機器效能,活磁碟空間不足。而logrotate就是管理這些日誌檔案的工具,可以對單個日誌檔案或者某個目錄下的檔案按時間或大小進行切割、 壓縮歸檔,還可以在切割之後執行自定義命令。

系統會按照cron計畫執行logrotate,通常以天為基礎單位,在linux系統中計畫每天執行的指令碼通常位於 /etc/cron.daily/logrotate。也有一些系統不同,比如gentoo,路徑是在/etc/cron.daily/logrotate.cron。如果你想讓logrotate執行頻率更高(比如銷售),你只需要用乙個指令碼來讓cron執行 /etc/cron.hourly/logrotate.cron就可以了。當logrotate執行的時候,它會讀取自身的配置檔案來決定需要分割日誌檔案的路徑,分割頻率及保留多少個日誌存檔。

logrotate.conf 主配置檔案:

logrotate的主要配置檔案位於 /etc/logrotate.conf,該檔案會合併include /etc/logrotate.d下所有配置檔案。使用ls命令可以看到目錄下的檔案,這些檔案包含著各個軟體分割日誌的設定:

logrotate例項

/var/log/apache.log
rotate:指定分割日誌的數量,該例項配置為4,如果日誌數量已經到達4,當新的分割日誌產生時,會刪除最

老的乙個。

daily分割頻率按天,還可以配置值:weekly monthly  yearly

compress對日誌以gzip格式進行壓縮

nocompress不進行檔案壓縮

delaycompress:下次logrotate進行分割操作時再將本次分割的日誌檔案進行壓縮操作

prerotate/endscript在輪替之前執行之間的命令,prerotate與endscript成對出現。

postrotate/endscriptlogrotate每次分割檔案後會執行 postrotate 後的命令,作用是讓應用重啟,以便切換到新的日

志檔案。

sharedscripts:

這個命令的作用就是在執行postrotate裡的指令碼命令之前檢查是否還有日誌檔案要分割,所有需要日誌檔案都分割完之後才會執行指令碼命令。當然,如果沒有日誌檔案需要分割,postrotate 裡的指令碼命令同樣不會執行。例如,nginx的access日誌和error日誌都被分割,那postrotate 裡的指令碼就會被執行兩次,如果指令碼命令裡是重啟伺服器,那伺服器就會被重啟兩次,這顯然不是我們所希望的。這個時候就需要讓logrotate在分割多個檔案的時候只執行一次postrotate ,指令碼設定命令sharedscripts

missingok如果日誌檔案不存在,繼續進行下乙個操作

create舊日誌檔案輪替後建立新的日誌檔案

dateext輪替舊日誌檔案時,檔名新增-%y %m %d形式日期,可用dateformat選項

擴充套件配置。

nodateext舊日誌檔案不使用dateext副檔名,後面序數自增如"*.log.1"

dateformat只允許%y %m %d和%s指定符。注意:系統時鐘需要設定到2001-09-09之

後,%s才可以正確工作

olddir將輪替的檔案移至指定目錄下

ifempty不論日誌是否空,都進行輪替

notifempty若日誌為空,則不進行輪替

Cache control引數說明

header中的cache control引數說明 php編碼 網頁的快取是由http訊息頭中的 cache control 來控制的,常見的取值有private no cache max age must revalidate等,預設為private。其作用根據不同的重新瀏覽方式分為以下幾種情況 ...

nmap引數說明

目標規範 可以通過主機名,ip位址,網路等 例 scanme.nmap.org,dream4.org 24,192.168.0.1 10.0.0 255.1 254 il 從指定檔案獲取主機或網路 ir 隨機選擇主機,0 不限制掃瞄主機數 exclude 排除指定主機或網路 excludefile ...

toString引數說明

格式化數值 有時,我們可能需要將數值以一定的格式來呈現,就需要對數值進行格式化。我們使用格式字串指定格式。格式字串採用以下形式 axx,其中 a 為格式說明符,指定格式化型別,xx 為精度說明符,控制格式化輸出的有效位數或小數字數。格式說明符 說明 示例 輸出 c 貨幣 2.5.tostring c...