成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 logrotate 命令輪轉和歸檔日志

運維 系統運維
日志非常適合找出應用程序在做什么或對可能的問題進行故障排除。幾乎我們處理的每個應用程序都會生成日志,我們希望我們自己開發的應用程序也生成日志。日志越詳細,我們擁有的信息就越多。使用此 Linux 命令保持日志文件更新。

[[430513]]

使用此 Linux 命令保持日志文件更新。

日志非常適合找出應用程序在做什么或對可能的問題進行故障排除。幾乎我們處理的每個應用程序都會生成日志,我們希望我們自己開發的應用程序也生成日志。日志越詳細,我們擁有的信息就越多。但放任不管,日志可能會增長到無法管理的大小,反過來,它們可能會成為它們自己的問題。因此,最好將它們進行裁剪,保留我們需要的那些,并將其余的歸檔。

基本功能

logrotate 實用程序在管理日志方面非常出色。它可以輪轉日志、壓縮日志、通過電子郵件發送日志、刪除日志、歸檔日志,并在你需要時開始記錄最新的。

運行 logrotate 非常簡單——只需要運行 logrotate -vs state-file config-file。在上面的命令中,v 選項開啟詳細模式,s 指定一個狀態文件,最后的 config-file 是配置文件,你可以指定需要做什么。

實戰演練

讓我們看看在我們的系統上靜默運行的 logrotate 配置,它管理我們在 /var/log 目錄中找到的大量日志。查看該目錄中的當前文件。你是否看到很多 *.[number].gz 文件?這就是 logrotate 正在做的。你可以在 /etc/logrotate.d/rsyslog 下找到此配置文件。我的配置文件如下:

  1. /var/log/syslog
  2. {
  3.         rotate 7
  4.         daily
  5.         missingok
  6.         notifempty
  7.         delaycompress
  8.         compress
  9.         postrotate
  10.                 reload rsyslog > /dev/null 2>&1 || true
  11.         endscript
  12. }
  13.  
  14. /var/log/mail.info
  15. /var/log/mail.warn
  16. /var/log/mail.err
  17. /var/log/mail.log
  18. /var/log/daemon.log
  19. /var/log/kern.log
  20. /var/log/auth.log
  21. /var/log/user.log
  22. /var/log/lpr.log
  23. /var/log/cron.log
  24. /var/log/debug
  25. /var/log/messages
  26.  
  27. {
  28.         rotate 4
  29.         weekly
  30.         missingok
  31.         notifempty
  32.         compress
  33.         delaycompress
  34.         sharedscripts
  35.         postrotate
  36.                 reload rsyslog > /dev/null 2>&1 || true
  37.         endscript
  38. }

該文件首先定義了輪轉 /var/log/syslog 文件的說明,這些說明包含在后面的花括號中。以下是它們的含義:

  • rotate 7: 保留最近 7 次輪轉的日志。然后開始刪除超出的。
  • daily: 每天輪轉日志,與 rotate 7 一起使用,這意味著日志將保留過去 7 天。其它選項是每周、每月、每年。還有一個大小參數,如果日志文件的大小增加超過指定的限制(例如,大小 10k、大小 10M、大小 10G 等),則將輪轉日志文件。如果未指定任何內容,日志將在運行 logrotate 時輪轉。你甚至可以在 cron 中運行 logrotate 以便在更具體的時間間隔內使用它。
  • missingok: 如果日志文件缺失也沒關系。不要驚慌。
  • notifempty: 日志文件為空時不輪轉。
  • compress: 開啟壓縮,使用 nocompress 關閉它。
  • delaycompress: 如果壓縮已打開,則將壓縮延遲到下一次輪轉。這允許至少存在一個輪轉但未壓縮的文件。如果你希望昨天的日志保持未壓縮以便進行故障排除,那么此配置會很有用。如果某些程序在重新啟動/重新加載之前可能仍然寫入舊文件,這也很有幫助,例如 Apache。
  • postrotate/endscript: 輪轉后運行此部分中的腳本。有助于做清理工作。還有一個 prerotate/endscript 用于在輪轉開始之前執行操作。

你能弄清楚下一節對上面配置中提到的所有文件做了什么嗎?第二節中唯一多出的參數是 sharedscripts,它告訴 logrotate 在所有日志輪轉完成之前不要運行 postrotate/endscript 中的部分。它可以防止腳本在每一次輪轉時執行,只在最后一次輪轉完成時執行。

看點新的東西

我使用下面的配置來處理我系統上的 Nginx 的訪問和錯誤日志。

  1. /var/log/nginx/access.log
  2. /var/log/nginx/error.log  {
  3.         size 1
  4.         missingok
  5.         notifempty
  6.         create 544 www-data adm
  7.         rotate 30
  8.         compress
  9.         delaycompress
  10.         dateext
  11.         dateformat -%Y-%m-%d-%s
  12.         sharedscripts
  13.         extension .log
  14.         postrotate
  15.                 service nginx reload
  16.         endscript
  17. }

上面的腳本可以使用如下命令運行:

  1. logrotate -vs state-file /tmp/logrotate

第一次運行該命令會給出以下輸出:

  1. reading config file /tmp/logrotate
  2. extension is now .log
  3.  
  4. Handling 1 logs
  5.  
  6. rotating pattern: /var/log/nginx/access.log
  7. /var/log/nginx/error.log   1 bytes (30 rotations)
  8. empty log files are not rotated, old logs are removed
  9. considering log /var/log/nginx/access.log
  10.   log needs rotating
  11. considering log /var/log/nginx/error.log
  12.   log does not need rotating
  13. rotating log /var/log/nginx/access.log, log->rotateCount is 30
  14. Converted ' -%Y-%m-%d-%s' -> '-%Y-%m-%d-%s'
  15. dateext suffix '-2021-08-27-1485508250'
  16. glob pattern '-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
  17. glob finding logs to compress failed
  18. glob finding old rotated logs failed
  19. renaming /var/log/nginx/access.log to /var/log/nginx/access-2021-08-27-1485508250.log
  20. creating new /var/log/nginx/access.log mode = 0544 uid = 33 gid = 4
  21. running postrotate script
  22. * Reloading nginx configuration nginx

第二次運行它:

  1. reading config file /tmp/logrotate
  2. extension is now .log
  3.  
  4. Handling 1 logs
  5.  
  6. rotating pattern: /var/log/nginx/access.log
  7. /var/log/nginx/error.log   1 bytes (30 rotations)
  8. empty log files are not rotated, old logs are removed
  9. considering log /var/log/nginx/access.log
  10.   log needs rotating
  11. considering log /var/log/nginx/error.log
  12.   log does not need rotating
  13. rotating log /var/log/nginx/access.log, log->rotateCount is 30
  14. Converted ' -%Y-%m-%d-%s' -> '-%Y-%m-%d-%s'
  15. dateext suffix '-2021-08-27-1485508280'
  16. glob pattern '-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
  17. compressing log with: /bin/gzip
  18. renaming /var/log/nginx/access.log to /var/log/nginx/access-2021-08-27-1485508280.log
  19. creating new /var/log/nginx/access.log mode = 0544 uid = 33 gid = 4
  20. running postrotate script
  21. * Reloading nginx configuration nginx

第三次運行它:

  1. reading config file /tmp/logrotate
  2. extension is now .log
  3.  
  4. Handling 1 logs
  5.  
  6. rotating pattern: /var/log/nginx/access.log
  7. /var/log/nginx/error.log   1 bytes (30 rotations)
  8. empty log files are not rotated, old logs are removed
  9. considering log /var/log/nginx/access.log
  10.   log needs rotating
  11. considering log /var/log/nginx/error.log
  12.   log does not need rotating
  13. rotating log /var/log/nginx/access.log, log->rotateCount is 30
  14. Converted ' -%Y-%m-%d-%s' -> '-%Y-%m-%d-%s'
  15. dateext suffix '-2021-08-27-1485508316'
  16. glob pattern '-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
  17. compressing log with: /bin/gzip
  18. renaming /var/log/nginx/access.log to /var/log/nginx/access-2021-08-27-1485508316.log
  19. creating new /var/log/nginx/access.log mode = 0544 uid = 33 gid = 4
  20. running postrotate script
  21. * Reloading nginx configuration nginx

狀態文件的內容如下所示:

  1. logrotate state -- version 2
  2. "/var/log/nginx/error.log" 2021-08-27-9:0:0
  3. "/var/log/nginx/access.log" 2021-08-27-9:11:56

 

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2025-04-29 08:25:00

logrotateLinux日志輪轉

2021-08-16 11:59:32

Linuxlogrotate日志文件

2011-08-02 11:16:08

Oracle數據庫歸檔日志

2010-10-29 15:07:33

oracle日志

2010-10-29 14:44:35

ORACLE歸檔日志

2023-09-18 11:36:35

2010-04-14 16:09:51

Oracle 10g歸

2009-12-08 12:10:30

2010-11-19 13:19:26

Oracle歸檔日志

2010-11-19 13:14:21

Oracle刪除歸檔日

2013-11-06 13:31:14

Windowsrman備份日志

2021-07-20 05:33:41

Swift Codable

2010-10-29 13:30:33

Oracle歸檔日志

2021-02-19 18:06:57

Oracle日志聯機

2010-03-30 19:41:16

Nginx日志

2025-05-29 08:32:08

2011-08-04 10:31:43

歸檔日志參數文件

2011-01-11 11:32:20

Linuxlogrotate配置

2023-11-28 08:52:48

Go日志庫

2010-09-02 15:42:37

echo命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区回区在观看免费视频 | 99精品国产一区二区三区 | 人人草人人干 | 精品国产视频 | 国产一区二区在线视频 | 亚洲精品一区二区三区蜜桃久 | 日日天天 | 国产精品综合色区在线观看 | 亚洲成人精品视频 | 日韩一区二区三区av | 成人精品一区二区户外勾搭野战 | 成人毛片视频在线播放 | 国产一区二区高清在线 | 午夜精品一区二区三区在线视 | 久久美女网 | 久草视频观看 | 日本午夜精品 | 国产精品一区二区三区99 | 国产精品亚洲精品 | 欧美激情在线一区二区三区 | 黑人巨大精品欧美一区二区免费 | 欧美精品一区二区三区一线天视频 | 在线视频 亚洲 | 午夜精品久久久久久久久久久久久 | 久久国色 | 亚洲黄色av | 日韩欧美中文字幕在线观看 | 国产视频2021| 中文字幕国产一区 | 亚洲精品乱码 | 在线国产视频 | 精品亚洲视频在线 | 精品一区二区三区中文字幕 | 国产无套一区二区三区久久 | 日韩午夜影院 | 欧美日韩一区在线 | 日韩精品一区二区三区中文在线 | 91看片视频| 久久久久国产一区二区三区不卡 | 一区二区三区欧美 | avtt国产 |