使用Linux的logrotate拆分rails、nginx的log日志
安装logrotate
sudo apt-get install logrotate
Java代码
vim /etc/logrotate.conf
# 日志地址
/log_path/*.log {
daily # 按天来切割日志
missingok # 表示如果找不到 log 檔也沒關係
rotate 7 # 保留7天
compress # 压缩 默认是gzip(第三天的时候才会压缩第二天的日志)
delaycompress # 不压缩前一个(previous)截断的文件(需要与compress一起用)
notifempty # 表示如果 log 是空的,就不 rotate
dateext # 增加日期作为后缀,不然会是一串无意义的数字
copytruncate # 清空原有文件,而不是创建一个新文件先复制日志档的内容后,在清空的作法,因为有些程式一定日志在本来的档名,例如导轨。另一种方法是create。两种方式需要根据情况去权衡
}
设定好之后,可以等明天,或是执行
/usr/sbin/logrotate -f /etc/logrotate.conf
看看。
ubuntu下crontab 来每天运行logrotate,在/etc/cron.daily/logrotate
logrotate 的配置文件 /etc/logrotate.conf 主要参数如下表:
参数 功能
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 size # 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
如果不是copytruncate,那么需要重新启动一下服务
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
分享到:
相关推荐
Logrotate 日志切割 Nginx Logrotate 是一个基于 CRON 运行的日志切割工具,它可以根据配置文件自动切割和压缩日志文件。下面是 Logrotate 的详细介绍和相关知识点: 1. Logrotate 的介绍 Logrotate 是一个基于 ...
标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...
上述配置将把Access Log写入到`/var/log/nginx/access.log`,并且使用之前定义的`main`日志格式。 5. **日志级别和Error Log** 除了Access Log,还有Error Log用于记录服务器错误信息。默认情况下,Error Log的...
下面我们将详细探讨如何使用logrotate来对Nginx日志进行切割,并编写相应的脚本。 首先,Nginx的默认安装目录通常是`/usr/local/nginx`,而其日志文件通常位于`/usr/local/nginx/logs/`或`/usr/local/nginx/logs/...
例如,`logrotate`是一个常用的Linux工具,它可以定期自动地重命名和压缩日志文件,以避免单个日志文件过大。日志级别通常包括`DEBUG`, `INFO`, `WARNING`, `ERROR` 和 `CRITICAL`,根据严重程度决定是否记录和通知...
在这个“linux log日志查看【syslogd logrotate】”的主题中,我们将深入探讨两个核心工具:syslogd和logrotate。 syslogd是Linux系统中的一个标准组件,用于收集和处理来自不同程序的日志消息。它根据预定义的规则...
我在golang应用里使用logrus包来打日志,配置和使用都很方便,就是没有日志分割的功能,应用在线上运行一个月后日志文件都已经达到上百兆。后来发现了logrotate,这是centos自带的日志分割工具,都不用安装额外组件...
本文将深入探讨如何在Linux环境中使用C++来创建一个日志系统,以及Linux日志的相关概念。 首先,了解Linux日志系统的基础知识至关重要。在Linux中,日志主要用于记录系统事件和应用程序运行情况,它可以帮助开发者...
`logrotate` 是一个广泛使用的Linux工具,它能自动化地处理日志文件的轮换、压缩和保留策略,以确保日志数据的有效管理和存储空间的合理利用。当我们谈论“logrotate winform”时,可能是指在Windows环境中实现类似`...
Logrotate 是 Linux 系统中常用的日志轮换工具,配置文件通常位于 `/etc/logrotate.d/` 目录下。 示例配置文件 `nginx`: ```logrotate /var/log/nginx/*.log { daily missingok rotate 14 compress ...
例如,可以使用`logrotate`这样的工具来按日期或大小分割日志文件,以避免单个日志文件过大导致的问题。 总之,通过Nginx的`log_format`和`access_log`指令,我们可以灵活地控制服务器日志的格式和存储,从而更好地...
Nginx默认将访问日志记录在`/var/log/nginx/access.log`,错误日志记录在`/var/log/nginx/error.log`。日志切割是为了便于日志管理和存储,避免单个日志文件过大。以下是一个简单的日志切割方案: 1. **创建日志...
Nginx默认有两个主要的日志文件:`access.log`和`error.log`。`access.log`记录了所有HTTP请求的信息,如客户端IP、请求时间、请求方法、请求URL、响应状态码等;而`error.log`则记录了服务器运行时的错误信息。 ...
Nginx默认提供两种日志格式:`access_log`(访问日志)和`error_log`(错误日志)。访问日志记录了客户端的请求信息,包括请求时间、请求的URL、响应状态码等;错误日志则记录了服务器运行过程中遇到的问题。Nginx...
在IT运维中,日志管理是一项至关重要的任务,特别是对于长时间运行的服务器系统,日志文件的大小可能...总之,`logrotate`是Linux系统中一个非常实用的工具,对于任何长时间运行的服务来说,正确配置它都是非常必要的。
本文将深入探讨“LinuxLog.rar”压缩包中涉及到的“ConnectBean.JAVA”与Linux日志分析系统的相关知识。 首先,让我们理解"ConnectBean.JAVA"的角色。在Java编程中,"Bean"通常指的是符合JavaBeans规范的类,它是一...
3. 创建新的日志文件:使用`copy nul + access.log`和`copy nul + error.log`创建新的空日志文件,以便Nginx继续写入新的日志记录。 这样的日志切割方法虽然简单,但适用于小型部署或测试环境。在生产环境中,为了...