亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的logrotate怎么使用

發布時間:2022-02-04 15:53:33 來源:億速云 閱讀:283 作者:iii 欄目:開發技術

本篇內容介紹了“Linux的logrotate怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

logrotate是個十分有用的工具,它可以自動對日志進行截斷(或輪循)、壓縮以及刪除舊的日志文件。例如,你可以設置logrotate,讓/var/log/foo日志文件每30天輪循,并刪除超過6個月的日志。配置完后,logrotate的運作完全自動化,不必進行任何進一步的人為干預。另外,舊日志也可以通過電子郵件發送,不過該選項超出了本教程的討論范圍。

Linux的logrotate怎么使用

主流Linux發行版上都默認安裝有logrotate包,如果出于某種原因,logrotate沒有出現在里頭,你可以使用apt-get或yum命令來安裝。

在Debian或Ubuntu上:

# apt-get install logrotate cron

在Fedora,CentOS或RHEL上:

# yum install logrotate crontabs

logrotate的配置文件是/etc/logrotate.conf,通常不需要對它進行修改。日志文件的輪循設置在獨立的配置文件中,它(們)放在/etc/logrotate.d/目錄下。

樣例一

在第一個樣例中,我們將創建一個10MB的日志文件/var/log/log-file。我們將展示怎樣使用logrotate來管理該日志文件。

我們從創建一個日志文件開始吧,然后在其中填入一個10MB的隨機比特流數據。

# touch /var/log/log-file
# head -c 10M  /var/log/log-file

由于現在日志文件已經準備好,我們將配置logrotate來輪循該日志文件。讓我們為該文件創建一個配置文件。

# vim /etc/logrotate.d/log-file

/var/log/log-file {
   monthly
   rotate 5
   compress
   delaycompress
   missingok
   notifempty
   create 644 root root
   postrotate
       /usr/bin/killall -HUP rsyslogd
   endscript
}

這里:

  • monthly: 日志文件將按月輪循。其它可用值為‘daily’,‘weekly’或者‘yearly’。

  • rotate 5: 一次將存儲5個歸檔日志。對于第六個歸檔,時間最久的歸檔將被刪除。

  • compress: 在輪循任務完成后,已輪循的歸檔將使用gzip進行壓縮。

  • delaycompress: 總是與compress選項一起用,delaycompress選項指示logrotate不要將最近的歸檔壓縮,壓縮將在下一次輪循周期進行。這在你或任何軟件仍然需要讀取最新歸檔時很有用。

  • missingok: 在日志輪循期間,任何錯誤將被忽略,例如“文件無法找到”之類的錯誤。

  • notifempty: 如果日志文件為空,輪循不會進行。

  • create 644 root root: 以指定的權限創建全新的日志文件,同時logrotate也會重命名原始日志文件。

  • postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令將被執行。在這種情況下,rsyslogd 進程將立即再次讀取其配置并繼續運行。

上面的模板是通用的,而配置參數則根據你的需求進行調整,不是所有的參數都是必要的。

樣例二

在本例中,我們只想要輪循一個日志文件,然而日志文件大小可以增長到50MB。

# vim /etc/logrotate.d/log-file

/var/log/log-file {
   size=50M
   rotate 5
   create 644 root root
   postrotate
       /usr/bin/killall -HUP rsyslogd
   endscript
}

樣例三

我們想要讓舊日志文件以創建日期命名,這可以通過添加dateext常熟實現。

# vim /etc/logrotate.d/log-file

/var/log/log-file {
   monthly
   rotate 5
   dateext
   create 644 root root
   postrotate
       /usr/bin/killall -HUP rsyslogd
   endscript
}

這將讓歸檔文件在它們的文件名中包含日期信息。

排障

這里提供了一些logrotate設置的排障提示。

1. 手動運行logrotate

logrotate可以在任何時候從命令行手動調用。

要調用為/etc/lograte.d/下配置的所有日志調用logrotate

# logrotate /etc/logrotate.conf

要為某個特定的配置調用logrotate:

# logrotate /etc/logrotate.d/log-file
2. 演練

排障過程中的最佳選擇是使用‘-d’選項以預演方式運行logrotate。要進行驗證,不用實際輪循任何日志文件,可以模擬演練日志輪循并顯示其輸出。

# logrotate -d /etc/logrotate.d/log-file

Linux的logrotate怎么使用

正如我們從上面的輸出結果可以看到的,logrotate判斷該輪循是不必要的。如果文件的時間小于一天,這就會發生了。

3. 強制輪循

即使輪循條件沒有滿足,我們也可以通過使用‘-f’選項來強制logrotate輪循日志文件,‘-v’參數提供了詳細的輸出。

# logrotate -vf /etc/logrotate.d/log-file

reading config file /etc/logrotate.d/log-file
reading config info for /var/log/log-file

Handling 1 logs

rotating pattern: /var/log/log-file  forced from command line (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/log-file
 log needs rotating
rotating log /var/log/log-file, log->rotateCount is 5
dateext suffix '-20140916'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/log-file.5.gz to /var/log/log-file.6.gz (rotatecount 5, logstart 1, i 5),
old log /var/log/log-file.5.gz does not exist
renaming /var/log/log-file.4.gz to /var/log/log-file.5.gz (rotatecount 5, logstart 1, i 4),
old log /var/log/log-file.4.gz does not exist
. . .
renaming /var/log/log-file.0.gz to /var/log/log-file.1.gz (rotatecount 5, logstart 1, i 0),
old log /var/log/log-file.0.gz does not exist
log /var/log/log-file.6.gz doesn't exist -- won't try to dispose of it
renaming /var/log/log-file to /var/log/log-file.1
creating new /var/log/log-file mode = 0644 uid = 0 gid = 0
running postrotate script
compressing log with: /bin/gzip
4. Logrotate的記錄日志

logrotate自身的日志通常存放于/var/lib/logrotate/status目錄。如果處于排障目的,我們想要logrotate記錄到任何指定的文件,我們可以指定像下面這樣從命令行指定。

# logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file
5. Logrotate定時任務

logrotate需要的cron任務應該在安裝時就自動創建了,我把cron文件的內容貼出來,以供大家參考。

# cat /etc/cron.daily/logrotate

#!/bin/sh

# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
   [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

“Linux的logrotate怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合阳县| 平罗县| 宜黄县| 开阳县| 苗栗市| 陆良县| 岳阳县| 大同市| 年辖:市辖区| 额济纳旗| 弥勒县| 沁阳市| 绥江县| 柘荣县| 武汉市| 横山县| 海伦市| 叙永县| 黔东| 西贡区| 武宁县| 安福县| 龙门县| 绥德县| 亚东县| 神农架林区| 镇坪县| 渭南市| 阳东县| 新巴尔虎左旗| 水富县| 瓮安县| 周宁县| 宕昌县| 九江市| 扬中市| 历史| 青神县| 奉新县| 盖州市| 马鞍山市|