Logrotate日志切分
来源:互联网 发布:淘宝首页广告费用 编辑:程序博客网 时间:2024/05/22 17:28
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件更名或删除,并创建新的日志文件,我们把它叫做“转储”。是个使日志轮替的程序,有了它就不用看着自己的日志体积一天天的变大,而可以根据你自己的需求来设定日志转储。这个工具对于像nginx这种大日志量的处理非常有用。
Logrotate介绍
Logrotate通常是基于CRON来运行的,其实现脚本是/etc/cron.daily/logrotate
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1EXITVALUE=$?if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 0
实际运行时,Logrotate会调用配置文件/etc/logrotate.conf
# see "man logrotate" for details# rotate log files weekly#切分周期weekly# keep 4 weeks worth of backlogs#保留记录个数rotate 4# create new (empty) log files after rotating old ones#rotate旧文件时是否创建新的日志文件create# use date as a suffix of the rotated filedateext# uncomment this if you want your log files compressed#是否压缩#compress# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d# no packages own wtmp and btmp -- we'll rotate them here/var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1}/var/log/btmp { missingok monthly create 0600 root utmp rotate 1}# system-specific logs may be also be configured here.
这里的设置可以理解为Logrotate的缺省值,当然了,可以我们在/etc/logrotate.d目录里放置自己的配置文件,用来覆盖Logrotate的缺省值。
Logrotate使用演示
按天保存一周的Nginx日志压缩文件,配置文件为/etc/logrotate.d/nginx
/data2/nginx_log/*.log { daily missingok create rotate 30 compress dateext notifempty sharedscripts postrotate if [ -f /data2/nginx_log/nginx.pid ]; then kill -HUP `cat /data2/nginx_log/nginx.pid` fi endscript}
可以手动执行命令:
shell> logrotate -f /etc/logrotate.d/nginx
也可以通过debug选项来验证测试一下:
shell> logrotate -d -f /etc/logrotate.d/nginx
正常使用添加到crontab中即可:
#rotate nginx logs0 0 * * * logrotate -f /etc/logrotate.d/nginx
参数说明
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:在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily:指定转储周期为每天
weekly:指定转储周期为每周
monthly:指定转储周期为每月
rotate count:指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate:不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size 10MB:当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
sharedscripts:支持通配符,符合条件的所有的日志文件都轮转完毕后统一执行一次脚本
参考:
http://huoding.com/2013/04/21/246
http://my.oschina.net/davisqi/blog/77670
http://blog.csdn.net/cjwid/article/details/1690101
- logrotate切分tomcat日志
- Logrotate日志切分
- logstash 用 logrotate 来做日志切分
- 如何利用logrotate工具自动切分滚动中的日志文件
- 【Linux笔记】如何利用logrotate工具自动切分滚动中的日志文件
- 日志工具:logrotate
- logrotate管理日志
- logrotate管理日志
- Linux日志处理:Logrotate
- Logrotate切割日志
- logrotate seek 日志分割
- logrotate seek 日志分割
- logrotate工具清理日志
- logrotate定期清理日志
- logrotate进行日志管理
- logrotate切割日志文件
- 系统日志Logrotate配置
- linux 日志切割logrotate
- 专访包建强:为什么我说Android插件化从入门到放弃?
- 利用格雷码找出集合的所有非空子集
- java.net.SocketException: Too many open files解决方法
- 2016年计划
- Android Studio如何设置代码自动提示
- Logrotate日志切分
- iOS 通知NSNotification 使用详解
- 图片的几种处理方式
- 图片缓存-LruCache、DiskLruCache
- 用JS实现字符处理
- App Transport Security has blocked a cleartext HTTP
- Android点波纹效果实现
- 下载的几个方法
- ONVIF之发现摄像头详细代码