亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

linux下日志定時輪詢的流程詳解

2024-09-05 23:04:02
字體:
來源:轉載
供稿:網友

logrotate介紹

對于Linux系統安全來說,日志文件是極其重要的工具。日志文件包含了關于系統中發生的事件的有用信息,在排障過程中或者系統性能分析時經常被用到。當日志文件不斷增長的時候,就需要定時切割,否則,寫日志的速度和性能也會下降,更不便于我們歸檔,查詢。

所以便有了使用logrotate的時候 ,logrotate是個十分有用的工具,它可以自動對日志進行截斷(或輪循)、壓縮以及刪除舊的日志文件。例如,你可以設置logrotate,讓/var/log/foo日志文件每30天輪循,并刪除超過6個月的日志。配置完后,logrotate的運作完全自動化,不必進行任何進一步的人為干預。

logrotate配置文件位置

Linux系統默認安裝logrotate工具,它默認的配置文件在:

/etc/logrotate.conf

/etc/logrotate.d/

logrotate.conf 才主要的配置文件,logrotate.d 是一個目錄,該目錄里的所有文件都會被主動的讀入/etc/logrotate.conf中執行。

另外,如果 /etc/logrotate.d/ 里面的文件中沒有設定一些細節,則會以/etc/logrotate.conf這個文件的設定來作為默認值。

實際運行時,Logrotate會調用配置文件/etc/logrotate.conf。

可以在/etc/logrotate.d目錄里放置自定義好的配置文件,用來覆蓋Logrotate的缺省值。

定時輪循機制

Logrotate是基于CRON來運行的,其腳本是/etc/cron.daily/logrotate,日志輪轉是系統自動完成的。

logrotate這個任務默認放在cron的每日定時任務cron.daily下面 /etc/cron.daily/logrotate

/etc/目錄下面還有cron.weekly/, cron.hourly/, cron.monthly/ 的目錄都是可以放定時任務的

[/etc]$ cat /etc/cron.daily/logrotate#!/bin/sh# Clean non existent log file entries from status filecd /var/lib/logrotatetest -e status || touch statushead -1 status > status.cleansed 's/"//g' status | while read logfile datedo [ -e "$logfile" ] && echo "/"$logfile/" $date"done >> status.cleanmv status.clean statustest -x /usr/sbin/logrotate || exit 0/usr/sbin/logrotate /etc/logrotate.conf

這里實際操作輪詢的命令最后一行

/usr/sbin/logrotate /etc/logrotate.conf

定義好了每日執行任務的腳本cron.daily/logrotate ,再查看crontab的內容,里面設置好了對應的cron.xxly

執行時間

[/etc]$ vim /etc/crontabSHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

可以看出來了只要是在

  • /etc/cron.daily/ 下面的任務都是每天6:25 執行
  • /etc/cron.weekly/ 下面的任務都是每周日 6:47 執行
  • /etc/cron.monthly/ 下面的任務都是每月1號 6:52 執行

如果等不及cron自動執行日志輪轉,想手動強制切割日志,需要加-f參數;

不過正式執行前最好通過Debug選項來驗證一下(-d參數),這對調試也很重要

# /usr/sbin/logrotate -f /etc/logrotate.d/nginx // 未到時間或者未到切割條件,強制切割# /usr/sbin/logrotate -d -f /etc/logrotate.d/nginx // 輸出切割debug信息

那么至此,我們就知道logrotate是如何實現自動切割日志的

logrotate配置案例

nginx 常用日志切割配置

/data/log/nginx/*.log /data/log/nginx/*/*.log { # 對匹配上的日志文件進行切割 weekly # 每周切割 missingok  # 在日志輪循期間,任何錯誤將被忽略,例如“文件無法找到”之類的錯誤。 rotate 6  # 保留 6 個備份 compress  # 壓縮 delaycompress # delaycompress 和 compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮 notifempty  # 如果是空文件的話,不轉儲 create 0644 www-data ymserver  # mode owner group 轉儲文件,使用指定的文件模式創建新的日志文件 sharedscripts # 下面詳細說 prerotate # 在logrotate轉儲之前需要執行的指令,例如修改文件的屬性等動作;必須獨立成行  if [ -d /etc/logrotate.d/httpd-prerotate ]; then /   run-parts /etc/logrotate.d/httpd-prerotate; /  fi / endscript postrotate # 在logrotate轉儲之后需要執行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行  [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid` endscript su root ymserver # 輪訓日志時切換設置的用戶/用戶組來執行(默認是root),如果設置的user/group 沒有權限去讓文件容用 create 選項指定的擁有者 ,會觸發錯誤。}

如果要配置一個每日0點執行切割任務,怎么做到?我們的logrotate默認每天執行時間已經寫到了/etc/cron.daily/目錄下面,而這個目錄下面的任務執行時間上面也說了,在/etc/crontab里面定義了時6:25。

我之前就有個這樣的需求,看看下面的配置

/data/log/owan_web/chn_download_stat/chn_app_rec.log { copytruncate # weekly 注釋了 但是會繼承/etc/logrorate.conf的全局變量,也是weekly missingok rotate 10 compress delaycompress size = 000M # 大小到達size開始轉存 如果設置了size,會無視 daily, weekly,monthly 指令,所以size的優先級比較高 notifempty create 664 www-data ymserver su root dateext  //這個參數很重要!就是切割后的日志文件以當前日期為格式結尾,如xxx.log-20131216這樣,如果注釋掉,切割出來是按數字遞增,即前面說的 xxx.log-1這種格式 compress  //是否通過gzip壓縮轉儲以后的日志文件,如xxx.log-20131216.gz ;如果不需要壓縮,注釋掉就行}

然后去root的crontab配置一個0點執行的任務

wwwadm@host:/etc/logrotate.d$ sudo crontab -l -u root0 0 * * * /usr/sbin/logrotate /etc/logrotate.d/web_roteate -fv >/tmp/logro.log 2>&1

因為logrotate的切割周期是weekly,每次切割都是根據上一個切割的時間來進行,如果距離上一次有一周時間,就會切割,但是我們設置了crontab的每天切割,既不會進入/etc/cron.daily/的每日切割,也不會每周切割。這樣就能完美定制自己想要的切割日志時間

logrotate參數說明

compress 通過gzip 壓縮轉儲以后的日志

nocompress 不做gzip壓縮處理

create mode owner group 輪轉時指定創建新文件的屬性,如create 0777 nobody nobody

nocreate 不建立新的日志文件

delaycompress 和compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮

nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。

missingok 如果日志丟失,不報錯繼續滾動下一個日志

ifempty 即使日志文件為空文件也做輪轉,這個是logrotate的缺省選項。

notifempty 當日志文件為空時,不進行輪轉

mail address 把轉儲的日志文件發送到指定的E-mail 地址

olddir directory 轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統

noolddir 轉儲后的日志文件和當前日志文件放在同一個目錄下

sharedscripts 運行postrotate腳本,作用是在所有日志都輪轉后統一執行一次腳本。如果沒有配置這個,那么每個日志輪轉后都會執行一次腳本

prerotate 在logrotate轉儲之前需要執行的指令,例如修改文件的屬性等動作;必須獨立成行

postrotate 在logrotate轉儲之后需要執行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行

daily 指定轉儲周期為每天

weekly 指定轉儲周期為每周

monthly 指定轉儲周期為每月

rotate count 指定日志文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份

dateext 使用當期日期作為命名格式

dateformat .%s 配合dateext使用,緊跟在下一行出現,定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數

size(或minsize) log-size 當日志文件到達指定的大小時才轉儲,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
當日志文件 >= log-size 的時候就轉儲。 以下為合法格式:(其他格式的單位大小寫沒有試過)

size = 5 或 size 5 (>= 5 個字節就轉儲)

size = 100k 或 size 100k

size = 100M 或 size 100M

如果設置了size,會無視 daily, weekly,monthly 指令,所以size的優先級比較高

值得注意的一個配置是:copytruncate

copytruncate 如果沒有這個選項的話,操作方式:是將原log日志文件,移動成類似log.1的舊文件, 然后創建一個新的文件。

如果設置了,操作方式:拷貝原日志文件,并且將其變成大小為0的文件。

區別是如果進程,比如nginx 使用了一個文件寫日志,沒有copytruncate的話,切割日志時, 把舊日志log->log.1 ,然后創建新日志log。這時候nginx 打開的文件描述符依然時log.1,由沒有信號通知nginx 要換日志描述符,所以它會繼續向log.1寫日志,這樣就不符合我們的要求了。 因為我們想切割日志后,nginx 自動會向新的log 文件寫日志,而不是舊的log.1文件

解決方法有兩個:

1、向上面的nginx 切割日志配置,再postrotate里面寫個腳本

postrotate # 在logrotate轉儲之后需要執行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行 [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`endscript

這樣就是發信號給nginx ,讓nginx 關閉舊日志文件描述符,重新打開新的日志文件描述,并寫入日志

2、使用copytruncate參數,向上面說的,配置了它以后,操作方式是把log 復制一份 成為log.1,然后清空log的內容,使大小為0,那此時log依然時原來的舊log,對進程(nginx)來說,依然打開的是原來的文件描述符,可以繼續往里面寫日志,而不用發送信號給nginx

copytruncate這種方式操作的時候, 拷貝和清空之間有一個時間差,可能會丟失部分日志數據。

nocopytruncate 備份日志文件不過不截斷

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲free性xxxx护士白浆| 国产精品日韩av| 日韩国产高清污视频在线观看| 大荫蒂欧美视频另类xxxx| 日韩av在线网站| 久久在线免费观看视频| 日韩高清有码在线| 日韩欧美一区二区在线| 国产精品久久久久久久久粉嫩av| 成人黄色在线免费| 欧美一级高清免费播放| 精品久久久久人成| 欧美午夜女人视频在线| 欧美日韩视频免费播放| 日韩av免费在线| 成人福利网站在线观看11| 精品久久久久人成| 日韩欧美视频一区二区三区| 亚洲欧洲偷拍精品| 久久久999精品视频| 日韩国产精品视频| 精品国内自产拍在线观看| 午夜精品久久久久久久久久久久| 一区二区三区四区在线观看视频| 欧美xxxx综合视频| 日韩av在线网址| 色综合视频一区中文字幕| 亚洲一二三在线| 91av网站在线播放| 亚洲成人久久久久| 日韩亚洲第一页| 日韩天堂在线视频| 亚洲区一区二区| 国产精品色婷婷视频| 亚洲国产女人aaa毛片在线| 亚洲精品xxx| 亚洲国产美女精品久久久久∴| 亚洲国产黄色片| 欧美高清不卡在线| 成人性生交xxxxx网站| 欧美成人免费全部| 国产精品国模在线| 久久久久久久av| 51精品在线观看| 亚洲国产精品电影在线观看| 啪一啪鲁一鲁2019在线视频| 欧美激情a在线| 欧美黑人一区二区三区| 日本精品va在线观看| 国产一区二区三区在线观看视频| 亚洲色在线视频| 尤物九九久久国产精品的特点| 欧美精品免费在线观看| 日韩高清电影免费观看完整| 国语自产精品视频在线看| 国产日韩在线免费| 欧美理论电影网| 亚洲肉体裸体xxxx137| 亚洲va码欧洲m码| 国产又爽又黄的激情精品视频| 国产精品第七十二页| 国产精品久久久久久超碰| 亚洲精品美女网站| 日韩经典中文字幕| 尤物yw午夜国产精品视频| 麻豆精品精华液| 国产精品亚发布| 亚洲jizzjizz日本少妇| 亚洲大胆美女视频| 欧美激情三级免费| 亚洲第一级黄色片| 欧美性猛交xxxx富婆| 亚洲精品自在久久| 国产精品久久久久久久美男| 一区二区亚洲欧洲国产日韩| 日韩成人在线免费观看| 日本一区二三区好的精华液| 美女999久久久精品视频| 日韩免费av一区二区| 亚洲人成在线免费观看| 亚洲一区制服诱惑| 国产欧美一区二区三区在线看| 日韩视频免费观看| 国语自产精品视频在线看| 精品国产拍在线观看| 久久69精品久久久久久久电影好| 欧美极度另类性三渗透| 欧美日韩国产成人高清视频| 韩国三级电影久久久久久| 亚洲欧美中文另类| 欧美亚州一区二区三区| 亚洲精品白浆高清久久久久久| 丁香五六月婷婷久久激情| 欧美日韩在线看| 97在线免费观看视频| 成人激情黄色网| 国产精品露脸自拍| 操日韩av在线电影| 亚洲精品第一国产综合精品| 久久99精品久久久久久噜噜| 久久精品夜夜夜夜夜久久| 国产精品久久久久久久久久99| 亚洲综合一区二区不卡| 国产99视频在线观看| 91视频-88av| 欧美在线视频网站| 色婷婷**av毛片一区| 久久国产精品久久国产精品| 97超级碰碰人国产在线观看| 久久久最新网址| 日韩精品视频在线观看免费| 91免费人成网站在线观看18| 国产精品丝袜一区二区三区| 日韩有码片在线观看| 亚洲第一av在线| 亚洲国产成人一区| 国产精品国产三级国产aⅴ浪潮| 日日狠狠久久偷偷四色综合免费| 国产一区二区三区免费视频| 欧美色播在线播放| 久久精品人人做人人爽| 色悠久久久久综合先锋影音下载| 国产一区深夜福利| 国内精久久久久久久久久人| 欧美激情在线一区| 欧美日韩美女视频| 国产精品一区二区久久精品| 美女啪啪无遮挡免费久久网站| 亚洲qvod图片区电影| 国产精品自拍网| 最好看的2019的中文字幕视频| 日本一区二区不卡| 久久青草精品视频免费观看| 欧美重口另类videos人妖| 日韩亚洲国产中文字幕| 国产视频亚洲精品| 欧美激情中文字幕在线| 91成人精品网站| 欧美日韩中文字幕日韩欧美| 成人美女免费网站视频| 亚洲色图18p| 日韩在线观看电影| 精品国产鲁一鲁一区二区张丽| 日韩有码在线播放| 中文日韩电影网站| 国产精品视频成人| 26uuu日韩精品一区二区| 国产不卡av在线| 欧美老女人性视频| 亚洲一区中文字幕在线观看| 亚洲精品视频免费| 永久555www成人免费| 日韩欧美高清在线视频| 一区二区三区视频免费在线观看| 欧美激情亚洲视频| 久久精品视频99| 成人h猎奇视频网站| 日韩成人在线电影网| 国产欧美一区二区三区久久人妖| 性欧美暴力猛交69hd| 欧美日韩加勒比精品一区| 欧美丝袜第一区| 亚洲女成人图区| 精品欧美一区二区三区|