logrotate切割nginx日志
1 配置
- 使用系统自带的logrorate来切个nginx日志,位于/usr/sbin/logrotate
假设服务器上有两个网站的nginx配置分别如下:
- 去除其它配置信息,只保留了日志相关
- A网站
...
access_log /data/logs/a.com/access.log;
error_log /data/logs/a.com/error.log;
... - B网站
...
access_log /data/logs/b.com/access.log;
error_log /data/logs/b.com/error.log;
...
- 在/etc/logrotate.d/下创建一个配置文件 nginx, 内容如下:
# 这里可以添加你想切个的目录,也可以直接使用正则表达式 /data/logs/a.com/*.log
/data/logs/b.com/*.log
{
daily
rotate 30
missingok
dateext
compress
delaycompress
notifempty
sharedscripts
postrotate
if [ -f /usr/local/nginx/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/nginx.pid`
fi
endscript
}
- 配置说明:
| daily | 指定转储周期为每天 |
| weekly | 指定转储周期为每周 |
| monthly | 指定转储周期为每月 |
| rotate | 转储次数,超过将会删除最老的那一个 |
| missingok | 忽略错误,如“日志文件无法找到”的错误提示 |
| dateext | 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期 |
| compress | 通过gzip 压缩转储旧的日志 |
| delaycompress | 当前转储的日志文件到下一次转储时才压缩 |
| notifempty | 如果日志文件为空,不执行切割 |
| sharedscripts | 只为整个日志组运行一次的脚本 |
| prerotate/endscript | 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行 |
| postrotate/endscript | 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 |
2、 测试
- 执行以下命令进行测试
logrotate -vf /etc/logrotate.d/nginx
- 然后到相应的日志目录下查看 (/data/logs/a.com/, /data/logs/b.com/)
- 应该会有类似以下的文件:
- access.log
- access.log-20170626
- error.log
- error.log-20170626
3、 添加定时任务
每日0点执行脚本
- 在终端运行 crontab -e
- 插入以下语句
* * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx
logrotate切割nginx日志的更多相关文章
- 烂泥:切割nginx日志
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会 ...
- Python切割nginx日志_小组_ThinkSAAS
Python切割nginx日志_小组_ThinkSAAS Python切割nginx日志
- 编写每天定时切割Nginx日志的脚本
自动每天定时切割Nginx日志的脚本,很方便很好用,推荐给大家使用.本脚本也是参考了张宴老师的文章,再次感谢张宴老师.1.创建脚本/usr/local/nginx/sbin/cut_nginx_log ...
- 使用logrotate做nginx日志分割
版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=266 背景 nginx是一款非常优秀的网络代理工具,但是其日志管理有点缺憾:nginx的access_log会无 ...
- 按小时或天切割Nginx日志
#按小时或天切割Nginx日志到备份文件夹 LOGS_PATH=/home/www/logs/thc SAVE_PATH=/home/www/logs/thc YESTERDAY=$(date -d ...
- shell按日期自动切割nginx日志脚本
shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...
- shell切割nginx日志
用linux自带的计划任务切割nginx日志,每天0点执行 #!/bin/bash #GuoYabin nginxpid=`/bin/ps aux|grep nginx |awk /master/'{ ...
- 使用Linux自带的命令logrotate对Nginx日志进行切割
说明: Nginx安装目录:/usr/local/nginx/Nginx日志目录:/var/log/nginx/error/*.log /var/log/nginx/access/w1/*.log / ...
- 使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...
随机推荐
- 王立平--android这四个组成部分
Android中称为四大组件的为别为:Activity/Service/BroadCast Recevicer/Content provider Activity:activity是用户和应用程序交 ...
- 好玩的WPF第三弹:颤抖吧,地球!消失吧,地球!
原文:好玩的WPF第三弹:颤抖吧,地球!消失吧,地球! 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net ...
- 编写可移植C/C++程序的要点(12条)
1.分层设计,隔离平台相关的代码.就像可测试性一样,可移植性也要从设计抓起.一般来说,最上层和最下层都不具有良好的可移植性.最上层是GUI,大多数GUI都不是跨平台的,如Win32 SDK和MFC.最 ...
- Qt编程中QDiaog的ESC键(按下Esc键会默认调用reject()方法)
最近使用QDialog时,按了下Esc键,导致QDialog被关闭,而后续的数据处理出现了问题.原来在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QClose ...
- SQL基础 关键字
SQL语言类型 数据定义:create/alter/drop table/trigger/index/function/存储过程/约束/…数据操纵:select/update/insert/delet ...
- OnPropertyChanged的使用
#region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; ...
- PHP 实现自动加载器(Autoloader)
我们知道PHP可以实现自动加载,避免了繁重的体力活,代码更规范,整洁.那如果我们把这个自动加载再升华一下,变成自动加载类,每次只需要引入这个类,那么其他类就自动加载了,已经开源,仓库地址在这里.同时如 ...
- PHP自动加载类__autoload()浅谈
在面向对象编程中,都是以对象为单位的操作,如果我有两个不同的类,类A和类B,在同一个文件里,实例化对象,就能在这个文件同时调用类A和类B的函数 <?php #a.php class A{ pub ...
- 零元学Expression Blend 4 - Chapter 2 入门界面简介
原文:零元学Expression Blend 4 - Chapter 2 入门界面简介 在这篇教学我将会介绍Expression Blend 4的基本界面,虽然有些网站已经有做了介绍,为了整个教学的完 ...
- Android零基础入门第48节:可折叠列表ExpandableListView
原文:Android零基础入门第48节:可折叠列表ExpandableListView 上一期学习了AutoCompleteTextView和MultiAutoCompleteTextView,你已经 ...