文章詳情頁
Logrotate如何實(shí)現(xiàn)每小時(shí)切割日志文件
瀏覽:174日期:2023-06-15 15:23:21
目錄
- 一、Logrotate背景介紹
- 1.1 安裝
- 二、logrotate配置介紹
- 三、實(shí)現(xiàn)每小時(shí)切割日志文件
- 3.1、添加 logrotate 配置文件
- 3.2 執(zhí)行命令
- 3.3加入定時(shí)任務(wù)
- 總結(jié)
一、Logrotate背景介紹
logrotate 程序是一個(gè)日志文件管理工具。
用來把舊的日志文件刪除,并創(chuàng)建新的日志文件,我們把它叫做“轉(zhuǎn)儲(chǔ)”。
我們可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲(chǔ),這個(gè)過程一般通過crontab 定時(shí)任務(wù)。
1.1 安裝
一般在服務(wù)器初始化的時(shí)候這些工具都已經(jīng)存在的,但是為了保險(xiǎn),還是手動(dòng)安裝一下:
yum -y install logrotate
服務(wù)簡單的說明:
服務(wù)的主配置文件:/etc/logrotate.conf
在主配置中可以看到 include /etc/logrotate.d 說明我們可以將用戶定義的配置直接放到這下面,系統(tǒng)會(huì)自動(dòng)為我們執(zhí)行。
當(dāng)然,系統(tǒng)的并不能很好的滿足我們需求。
二、logrotate配置介紹
再看看配置模板:
日志文件絕對路徑 { 各種參數(shù)...}
參數(shù)包含:
三、實(shí)現(xiàn)每小時(shí)切割日志文件
3.1、添加 logrotate 配置文件
vim /etc/logrotate.d/nginx
內(nèi)容如下:
/data2/data/cp*log/cp.log {copytruncate rotate 87600missingokifemptydateextdateformat -%Y%m%d-%H sharedscriptspostrotate if [ -f /usr/local/openresty/nginx/logs/nginx.pid ]; thenkill -USR1 `cat /usr/local/openresty/nginx/logs/nginx.pid` fiendscript}
3.2 執(zhí)行命令
?//手動(dòng)執(zhí)行一次輪替:?/usr/sbin/logrotate -vf /etc/logrotate.d/nginx
執(zhí)行命令
logrotate [-dv] [-f|--force] [-s|--state statefile] config_file ..
執(zhí)行命令選項(xiàng)
# logrotate --helpUsage: logrotate [OPTION...] <configfile> -d, --debug Don"t do anything, just test (implies -v) 不做實(shí)際處理,僅調(diào)試 -f, --force Force file rotation 強(qiáng)制執(zhí)行,忽視參數(shù)要求 -m, --mail=commandCommand to send mail (instead of `/bin/mail") 發(fā)送mail -s, --state=statefile Path of state file 查看狀態(tài)文件 -v, --verbose Display messages during rotation 輪替一次,并顯示輪替過程信息 --versionDisplay version information 顯示logrotate版本Help options: -?, --helpShow this help message --usage Display brief usage message
3.3加入定時(shí)任務(wù)
crontab -e
每小時(shí)的59分進(jìn)行切割 內(nèi)容如下:
# Logrotate59 * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx
這里只簡單地介紹該種定時(shí)任務(wù)配置。
#格式*(分鐘) *(小時(shí)) *(天) *(月) *(周幾) 用戶 命令# 若分鐘位值為 *,表示0-59之間的任意有效值;# 若分鐘位值為 1,表示每小時(shí)的第1分鐘;# 若分鐘位值為 */5,表示每5分鐘# 若分鐘位值為10,20 表示每小時(shí)的第10分鐘和第20分鐘# 若分鐘位值為10-12 表示每小時(shí)的第10、11、12分鐘
效果如下:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。
標(biāo)簽:
Nginx
排行榜
