linux logcat 日志輪轉(zhuǎn)如何配置

小樊
85
2024-08-26 22:30:11

在 Linux 系統(tǒng)中,日志輪轉(zhuǎn)通常由 logrotate 工具管理

  1. 創(chuàng)建一個(gè)新的日志輪轉(zhuǎn)配置文件。首先,創(chuàng)建一個(gè)新的日志輪轉(zhuǎn)配置文件,例如 /etc/logrotate.d/myapp。使用文本編輯器(如 vim、nano 等)打開該文件:
sudo nano /etc/logrotate.d/myapp
  1. 編輯配置文件。在配置文件中,定義日志輪轉(zhuǎn)的相關(guān)參數(shù)。以下是一個(gè)示例配置:
/path/to/your/log/files/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 root adm
    sharedscripts
    postrotate
        /bin/systemctl reload myapp.service > /dev/null 2>&1 || true
    endscript
}

這個(gè)配置的解釋如下:

  • /path/to/your/log/files/*.log:指定要輪轉(zhuǎn)的日志文件路徑。將其替換為你的應(yīng)用程序日志文件所在的目錄。
  • daily:每天進(jìn)行一次日志輪轉(zhuǎn)。
  • missingok:如果日志文件不存在,不會(huì)產(chǎn)生錯(cuò)誤。
  • rotate 7:保留最近 7 個(gè)日志文件。
  • compress:壓縮舊的日志文件。
  • delaycompress:延遲壓縮,直到下一次輪轉(zhuǎn)。
  • notifempty:如果日志文件為空,則不進(jìn)行輪轉(zhuǎn)。
  • create 0640 root adm:創(chuàng)建新的日志文件,設(shè)置權(quán)限為 0640,屬主為 root,屬組為 adm。
  • sharedscripts:如果有多個(gè)日志文件,只執(zhí)行一次 postrotate 腳本。
  • postrotateendscript 之間的部分:在輪轉(zhuǎn)后執(zhí)行的腳本。在這個(gè)例子中,我們重新加載名為 myapp.service 的 systemd 服務(wù)。將其替換為你的應(yīng)用程序服務(wù)名稱。
  1. 測試配置。運(yùn)行以下命令以測試日志輪轉(zhuǎn)配置是否正確:
sudo logrotate --debug /etc/logrotate.d/myapp

如果沒有錯(cuò)誤或警告,那么你的配置應(yīng)該是正確的。

  1. 設(shè)置自動(dòng)輪轉(zhuǎn)。logrotate 通常由 cron 任務(wù)自動(dòng)執(zhí)行。確保你的系統(tǒng)已經(jīng)安裝了 cron,并且 /etc/cron.daily/logrotate 文件存在。這將確保每天自動(dòng)執(zhí)行日志輪轉(zhuǎn)。

現(xiàn)在,你已經(jīng)成功配置了 Linux 日志輪轉(zhuǎn)。根據(jù)你的配置,日志文件將按照指定的規(guī)則進(jìn)行輪轉(zhuǎn)。

0