linux日志分割处理工具logrotate
2017-03-28 11:33
274 查看
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。
Logrotate是基于CRON来运行的,其脚本是「/etc/cron.daily/logrotate」
实际运行时,Logrotate会调用配置文件「/etc/logrotate.conf」
这里的设置可以理解为Logrotate的缺省值,当然了,可以我们在「/etc/logrotate.d」目录里放置自己的配置文件,用来覆盖Logrotate的缺省值。
logrotate 是安装系统时就可以装上去的,很多的大流量网站都是使用这个来进行Log的切换。
不用 Kill nginx pid, 不用restart nginx,只要重新载入一下就可以了。
nginx日志分割:
在/etc/logrotate.d/目录下生成nginx文件
/mnt/nginx/logs/*.log { //注意:具体请以自己的nginx日志为准
daily //每天切割
dateext //%Y%m%d作为后缀
missingok //日志不存在,分析下一个
rotate 20 //保留最近的20个备份
compress //切换之后压缩.tar.gz
notifempty //空文件不转储
create 640 root root //新日志文件模式 root 是使用的用户
sharedscripts //整个日志组运行一次的脚本
postrotate
/mnt/nginx/sbin/nginx reload > /dev/null 2>/dev/null || true
endscript
}
如果你等不及CRON,可以通过如下命令来手动执行:
shell> logrotate -f /etc/logrotate.d/nginx
当然,正式执行前最好通过Debug选项来验证一下,这对调试也很重要,验证的过程不会真的转存:
shell> logrotate -d -f /etc/logrotate.d/nginx
Logrotate的备份策略(以两个备份来说明,即rotate 2,文件error.log):原始文件error.log,经过一次转储,会生成error.log.1;第二次转储,生成error.log.2;第三次转储,error.log.n命名为error.log.n+1,同时生成新的error.log.1,删除error.log.n+1文件。
日志切割的执行时间是由cron程配置决定的,可查看/etc/crontab文件(cron时间戳格式:分时日月周)
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
//重启nginx,重新加载日志文件,防止不写
`cp -f /var/log/nginx/*.* /var/log/nginx/backup`
//自定义脚本,将旧日志copy到backup文件夹(backup要存在)
cat /var/lib/logrotate.status
logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。
Logrotate是基于CRON来运行的,其脚本是「/etc/cron.daily/logrotate」
实际运行时,Logrotate会调用配置文件「/etc/logrotate.conf」
这里的设置可以理解为Logrotate的缺省值,当然了,可以我们在「/etc/logrotate.d」目录里放置自己的配置文件,用来覆盖Logrotate的缺省值。
logrotate 是安装系统时就可以装上去的,很多的大流量网站都是使用这个来进行Log的切换。
不用 Kill nginx pid, 不用restart nginx,只要重新载入一下就可以了。
nginx日志分割:
在/etc/logrotate.d/目录下生成nginx文件
/mnt/nginx/logs/*.log { //注意:具体请以自己的nginx日志为准
daily //每天切割
dateext //%Y%m%d作为后缀
missingok //日志不存在,分析下一个
rotate 20 //保留最近的20个备份
compress //切换之后压缩.tar.gz
notifempty //空文件不转储
create 640 root root //新日志文件模式 root 是使用的用户
sharedscripts //整个日志组运行一次的脚本
postrotate
/mnt/nginx/sbin/nginx reload > /dev/null 2>/dev/null || true
endscript
}
如果你等不及CRON,可以通过如下命令来手动执行:
shell> logrotate -f /etc/logrotate.d/nginx
当然,正式执行前最好通过Debug选项来验证一下,这对调试也很重要,验证的过程不会真的转存:
shell> logrotate -d -f /etc/logrotate.d/nginx
Logrotate的备份策略(以两个备份来说明,即rotate 2,文件error.log):原始文件error.log,经过一次转储,会生成error.log.1;第二次转储,生成error.log.2;第三次转储,error.log.n命名为error.log.n+1,同时生成新的error.log.1,删除error.log.n+1文件。
日志切割的执行时间是由cron程配置决定的,可查看/etc/crontab文件(cron时间戳格式:分时日月周)
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
//重启nginx,重新加载日志文件,防止不写
`cp -f /var/log/nginx/*.* /var/log/nginx/backup`
//自定义脚本,将旧日志copy到backup文件夹(backup要存在)
cat /var/lib/logrotate.status
相关文章推荐
- linux日志分割处理工具logrotate
- Linux日志处理:Logrotate
- linux系统日志管理工具logrotate之生产实例
- linux下日志分割logrotate 设置和理解(一)
- linux】利用logger,logrotate处理脚本日志
- [置顶] logrotate linux 系统日志备份压缩工具
- [日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割(脚本)
- Linux下自动分割Nginx日志文件(三)-----Logrotate
- 【Linux笔记】如何利用logrotate工具自动切分滚动中的日志文件
- linux下用logratate进行日志分割处理
- [日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割(脚本)
- Linux日志分割--logrotate
- [日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割
- Linux的日志文件管理工具——logrotate(linux日志切割与轮循)
- logrotate 日志分割工具
- CentOS Linux使用logrotate分割管理日志
- linux下日志管理工具--logrotate
- logrotate 日志分割工具的配置使用
- linux系统日志管理工具logrotate之原理详述
- Linux使用logrotate分割管理日志rsync日志 推荐