`

使用Linux的logrotate拆分rails、nginx的log日志

 
阅读更多
使用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 日志切割 Nginx Logrotate 是一个基于 CRON 运行的日志切割工具,它可以根据配置文件自动切割和压缩日志文件。下面是 Logrotate 的详细介绍和相关知识点: 1. Logrotate 的介绍 Logrotate 是一个基于 ...

    rails 部署 nginx

    标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...

    nginx服务器中access_log日志分析与配置详解

    上述配置将把Access Log写入到`/var/log/nginx/access.log`,并且使用之前定义的`main`日志格式。 5. **日志级别和Error Log** 除了Access Log,还有Error Log用于记录服务器错误信息。默认情况下,Error Log的...

    linux-log-rw.rar_.log文件读取_linux_linux 读取文件_linux LOG_log 日志

    例如,`logrotate`是一个常用的Linux工具,它可以定期自动地重命名和压缩日志文件,以避免单个日志文件过大。日志级别通常包括`DEBUG`, `INFO`, `WARNING`, `ERROR` 和 `CRITICAL`,根据严重程度决定是否记录和通知...

    linux log日志查看【syslogd logrotate】.zip

    在这个“linux log日志查看【syslogd logrotate】”的主题中,我们将深入探讨两个核心工具:syslogd和logrotate。 syslogd是Linux系统中的一个标准组件,用于收集和处理来自不同程序的日志消息。它根据预定义的规则...

    Linux使用logrotate来切割日志文件

    我在golang应用里使用logrus包来打日志,配置和使用都很方便,就是没有日志分割的功能,应用在线上运行一个月后日志文件都已经达到上百兆。后来发现了logrotate,这是centos自带的日志分割工具,都不用安装额外组件...

    Linux系统下nginx日志每天定时切割的脚本写法

    使用Linux系统自带的命令logrotate对Nginx日志进行切割。 Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/、/usr/local/nginx/logs/nginx_logs/ 1、添加nginx日志切割脚本 cd /etc/...

    logc.rar_C++ 日志系统_Linux日志_linux 日志_logc_日志记录 linux

    本文将深入探讨如何在Linux环境中使用C++来创建一个日志系统,以及Linux日志的相关概念。 首先,了解Linux日志系统的基础知识至关重要。在Linux中,日志主要用于记录系统事件和应用程序运行情况,它可以帮助开发者...

    logrotate winform

    `logrotate` 是一个广泛使用的Linux工具,它能自动化地处理日志文件的轮换、压缩和保留策略,以确保日志数据的有效管理和存储空间的合理利用。当我们谈论“logrotate winform”时,可能是指在Windows环境中实现类似`...

    Nginx配置负载均衡、动静分离、请求日志打印、日志切割、压缩、删除.md

    Logrotate 是 Linux 系统中常用的日志轮换工具,配置文件通常位于 `/etc/logrotate.d/` 目录下。 示例配置文件 `nginx`: ```logrotate /var/log/nginx/*.log { daily missingok rotate 14 compress ...

    log_format为Nginx设置日志格式1

    例如,可以使用`logrotate`这样的工具来按日期或大小分割日志文件,以避免单个日志文件过大导致的问题。 总之,通过Nginx的`log_format`和`access_log`指令,我们可以灵活地控制服务器日志的格式和存储,从而更好地...

    nginx安装和nginx日志切割

    Nginx默认将访问日志记录在`/var/log/nginx/access.log`,错误日志记录在`/var/log/nginx/error.log`。日志切割是为了便于日志管理和存储,避免单个日志文件过大。以下是一个简单的日志切割方案: 1. **创建日志...

    nginx日志文件切割

    Nginx默认有两个主要的日志文件:`access.log`和`error.log`。`access.log`记录了所有HTTP请求的信息,如客户端IP、请求时间、请求方法、请求URL、响应状态码等;而`error.log`则记录了服务器运行时的错误信息。 ...

    nginx日志切割.rar

    Nginx默认提供两种日志格式:`access_log`(访问日志)和`error_log`(错误日志)。访问日志记录了客户端的请求信息,包括请求时间、请求的URL、响应状态码等;错误日志则记录了服务器运行过程中遇到的问题。Nginx...

    Centos7配置logrotate执行Tomcat日志轮转

    在IT运维中,日志管理是一项至关重要的任务,特别是对于长时间运行的服务器系统,日志文件的大小可能...总之,`logrotate`是Linux系统中一个非常实用的工具,对于任何长时间运行的服务来说,正确配置它都是非常必要的。

    LinuxLog.rar_ConnectBean.JAVA_linux_日志 分析 系统_日志系统_系统日志

    本文将深入探讨“LinuxLog.rar”压缩包中涉及到的“ConnectBean.JAVA”与Linux日志分析系统的相关知识。 首先,让我们理解"ConnectBean.JAVA"的角色。在Java编程中,"Bean"通常指的是符合JavaBeans规范的类,它是一...

    nginx日志按时间切割.zip

    3. 创建新的日志文件:使用`copy nul + access.log`和`copy nul + error.log`创建新的空日志文件,以便Nginx继续写入新的日志记录。 这样的日志切割方法虽然简单,但适用于小型部署或测试环境。在生产环境中,为了...

Global site tag (gtag.js) - Google Analytics