linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
最近發現在
一般系統都自帶了,如果沒有就安裝個,容易簡單。
yum install logrotate
apt-get install logrotate
命令參數說明
# logrotate --help
Usage: logrotate [OPTION...]
-d, --debug 調試模式,輸出調試結果,并不執行。隱式-v參數
-f, --force 強制模式,對所有相關文件進行rotate
-m, --mail=command 發送郵件 (instead of `/bin/mail')
-s, --state=statefile 狀態文件,對于運行在不同用戶情況下有用
-v, --verbose 顯示debug信息
配置選項說明
compress:通過gzip 壓縮轉儲舊的日志
nocompress:不需要壓縮時,用這個參數
copytruncate:用于還在打開中的日志文件,把當前日志備份并截斷
nocopytruncate:備份日志文件但是不截斷
create mode owner group:使用指定的文件模式創建新的日志文件
nocreate:不建立新的日志文件
delaycompress:和 compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮
nodelaycompress:覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address:專儲時的錯誤信息發送到指定的Email 地址
ifempty:即使是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty:如果是空文件的話,不轉儲
mail address:把轉儲的日志文件發送到指定的E-mail 地址
nomail:轉儲時不發送日志文件
olddir directory:轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統
noolddir:轉儲后的日志文件和當前日志文件放在同一個目錄下
prerotate/endscript:在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript:在轉儲以后需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
sharedscripts:所有的日志文件都輪轉完畢后統一執行一次腳本
daily:指定轉儲周期為每天
weekly:指定轉儲周期為每周
monthly:指定轉儲周期為每月
dateext在文件末尾添加當前日期
rotate count:指定日志文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
size size:當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB
Q&A
1.如何測試logrotate程序執行的情況
答:/usr/sbin/logrotate -d /etc/logrotate.d/nginx
2.怎么查看log文件的具體執行情況
答:cat /var/lib/logrotate/status
3.使用-v或-d參數時,顯示log does not need rotating
答:logrotate在對status未記錄的文件進行轉儲時,會在status添加一條該文件的記錄,并將操作時間設為當天。之后程序再次對此文件進行轉儲時發現這個文件今天已經操作過,就不再進行相關操作。
解決方法:
1. vi /var/lib/logrotate/status ?更改相對應的文件操作日期
2. 使用-s指定狀態文件
4.分割日志時報錯:error: skipping “/var/log/nginx/test.access.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.
答:添加“su root list”到/etc/logrotate.d/nginx文件中即可
如下;ubuntu才有可能需要指定su root www,centos不用。
/data/logs/nginx/*.log {
su root www
daily
rotate 21
missingok
dateext
compress
notifempty
sharedscripts
postrotate
[ -e /data/logs/nginx/nginx.pid ] && kill -USR1 `cat /data/logs/nginx/nginx.pid`
endscript
}
logrotate配置文件一般在:
/etc/logrotate.conf 通用配置文件,可以定義全局默認使用的選項。
/etc/logrotate.d/xxx 自定義服務配置文件
默認的logrotate被加入cron的/etc/cron.daily中作為每日任務執行。
如果有打開cron定時日志,查看的日志即可
# grep logrotate /var/log/cron
總結
以上是生活随笔為你收集整理的linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果预约了车但是司机联系不上,就没有去坐
- 下一篇: 怎样在Linux系统中编译,Linux操