如何理解 logrotate 實用工具?請收下這份保姆級教程
logrotate 工作原理
logrotate.conf
logrotate 的主要配置檔案存放在 /etc/logrotate.conf。這個檔案包含 logrotate 在輪換日誌時使用的預設引數。這個檔案包含註釋,所以你可以瀏覽一下看看是如何配置的。本文稍後將描述該檔案中的幾個特定命令。注意檔案有一行如下:
include /etc/logrotate.d
這個目錄包含大多數特定應用程式(application-specific)的配置檔案。
logrotate.d
使用以下命令列出包含特定應用程式日誌配置的目錄內容:
ls /etc/logrotate.d
注意:在 Karmic Koala(9.10)之前的 Ubuntu 作業系統版本中,沒有用於 syslog 服務的條目。在該發行版之前,系統日誌是透過從 /etc/cron.daily/sysklogd 指令碼中執行的 savelog 命令來輪換的。
走進應用程式的配置檔案
舉個例子,考慮有這麼個 logrotate 配置檔案,它可能是當你在 Fedora 系統上安裝 Apache 時放置的:
/var/log/httpd/*log { missingok notifempty sharedscripts postrotate /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript }
下一節將介紹一些在 logrotate 配置檔案中實際執行的更常用的命令。
配置命令
你可以透過 man 手冊檢視 logrotate 配置檔案使用的完整命令列表:
man logrotate
這一節介紹更常用的命令。
請記住,/etc/logrotate.d 中的應用程式配置檔案從 /etc/logrotate.conf 檔案中繼承預設配置。
Log files
/var/foo/*.log /var/bar/log.txt { rotate 14 daily compress delaycompress sharedscripts postrotate /usr/sbin/apachectl graceful > /dev/null Endscript}
Rotate count
rotate 命令確定在 logrotate 開始刪除較舊的日誌之前,返回多少歸檔日誌。例如:
rotate 4
Rotation interval
你可以指定一個命令來告訴 logrotate 多久來輪換特定日誌。合理的命令包括:
dailyweeklymonthlyyearly
/usr/sbin/logrotate /etc/logrotate.hourly.conf
Size
你可以使用 size 命令為 logrotate 指定檔案大小,以便在確定是否執行輪換時進行檢查。命令的格式告訴 logrotate 你用來指定大小的單位是什麼:
size 100ksize 100Msize 100G
Compression
如果你想壓縮歸檔的日誌檔案(使用 gzip 格式),你可以包含以下命令,這一般在 /etc/logrotate.conf 中有:
compress
nocompress
關於壓縮的另一個需要注意的命令如下:
delaycompress
這個命令在你想壓縮歸檔檔案,但又想推遲壓縮時很有用。當 delaycompress 開啟時,歸檔日誌會在日誌下次輪換時被壓縮。當你有一個程式,在輪換了新日誌檔案之後仍可能在一段時間內寫入其舊日誌檔案時,這一點可能很重要。注意 delaycompress 只有在你配置了 compress 時才生效。一個很好的使用 delaycompress 的例子是,當 logrotate 被告知使用 “graceful” 或 “reload” 指令重啟 Apache 時。因為舊的 Apache 程式直到連線完成才結束,所以它們可能會在重新啟動後的一段時間內嘗試將更多項記錄到舊檔案中。延遲壓縮可確保在輪換日誌時不會丟失這些額外的日誌條目。
Postrotate
postrotate /usr/sbin/apachectl restart > /dev/nullendscript
> /dev/null
告知 logrotate 丟棄命令的輸出。在這個例子裡,你不需要檢視應用程式重啟成功的輸出。Sharedscripts
sharedscripts
接下來去哪裡
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013542/viewspace-2932406/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前端面試?這份手擼Promise請你收下前端面試Promise
- RabbitMQ保姆級教程最佳實踐MQ
- 這份Koa的簡易Router手敲指南請收下
- 保姆級教程 | Merge Request 分支合併請求
- 龍蜥實驗室來了!收下這份指南,秒級體驗 Anolis OS
- 【保姆級教程】如何用Rust編寫一個ChatGPT桌面應用RustChatGPT
- 如何優雅使用Docker?請收下這15個小技巧。Docker
- SpringCloud搭建保姆級教程SpringGCCloud
- SeaweedFS + TiKV 部署保姆級教程
- 用 Python 寫個貪吃蛇,保姆級教程!Python
- 這一篇TCP總結請收下TCP
- 分散式事務保姆級教程分散式
- ROS通訊方式(保姆級教程)ROS
- graspnet復現保姆級教程
- 如何在 Windows 上安裝SSMS,保姆級教程來了!WindowsSSM
- 請收下這72個炫酷的CSS技巧CSS
- 如何優雅使用Docker?請收下這15個快捷有效的小技巧Docker
- 想要千行程式碼搞定Transformer?這份高效的PaddlePaddle官方實現請收下行程ORM
- Hive視窗函式保姆級教程Hive函式
- 春招已近,這份GitHub萬星的ML演算法面試大全請收下Github演算法面試
- 乾貨!這裡有一份神經網路入門指導,請收下!神經網路
- 保姆級教程,如何發現 GitHub 上的優質專案?Github
- 教程教你如何製作一份好看實用性強的邀請函!
- 軟體測試如何自學?收下這份《2020千鋒效能測試入門影片教程》
- 快收下這份“資料庫運作實踐”秘製口訣資料庫
- 保姆級教程,透視分析真的不難
- 保姆級教程!玩轉 ChunJun 詳細指南
- VSCode安裝使用教程,保姆級!VSCode
- 保姆級mysql安裝教程+下載教程-附視訊教程MySql
- 易車網實戰+【保姆級】:Feapder爬蟲框架入門教程爬蟲框架
- 這才是滿分畢業答辯PPT!請收下這些錦囊
- 請教這個應用技術如何實現?
- 用PHP輕鬆完成一個分散式事務TCC,保姆級教程PHP分散式
- 用Go輕鬆完成一個分散式事務TCC,保姆級教程Go分散式
- 用Java輕鬆完成一個分散式事務TCC,保姆級教程Java分散式
- 《爆肝整理》保姆級系列教程-玩轉Charles抓包神器教程(14)-Charles過濾網路請求
- 《爆肝整理》保姆級系列教程-玩轉Charles抓包神器教程(9)-Charles如何修改請求引數和響應資料-上篇
- 《爆肝整理》保姆級系列教程-玩轉Charles抓包神器教程(10)-Charles如何修改請求引數和響應資料-下篇