logrotate - rotates, compresses, and mails system logs
Linux系统自带的logratate自带的日志滚动压缩的工具,性能很高,经常使用来压缩程序的日志。
参考:
lograte 实现方式原理
参考:
http://www.cnblogs.com/sailrancho/p/4784763.html
记住默认滚动的方式是最好的,建议不要去改成第二种(copyctruncate)。
第二种方式是,比如你要滚动,nginx_access.log,copyctruncate的实现方式是,
第一步: cp nginx_access.log nginx_acessess.log-20170708
第二步: echo "" > nginx_access.log
优点是:
nginx_access.log 的文件句柄 ,file 的inode永远不变,应用程序写的文件句柄一直同一个。
缺点是:
第一步和第二步的这个时间过程中的日志会丢失。
而第一种方式是:create的方式:
第一步: mv nginx_access.log nginx_acessess.log-20170708
第二步: touch nginx_access.log(logrotate 做到动作)
优点是:
日志不会丢失,mv重命名之后,nginx的程序写入的日志将会是nginx_acessess.log-20170708(因为inode没有改变),所以不会丢失日志。但是为了解决 日志如何才能写入到新的文件access.log中,所有logratate中提供了 滚动之后,可以执行脚本比如 reload nginx 重新nginx,所以nginx会重读access.log这个日志文件。
比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/data1/logs/nginx/*.log
/data2/logs/nginx/*.log{
daily
missingok #如果日志文件不存在,logratete 会报错,这个来关闭这个报错。
rotate 32
compress
delaycompress #延迟一天进行压缩,通compress一同使用
notifempty # Do not rotate the log if it is empty
sharedscripts #无论日志匹配了几个,postrotate 脚本只执行一次
postrotate
[ -f /data1/env/nginx/logs/nginx.pid ] && kill -USR1 `cat /data1/env/nginx/logs/nginx.pid`
endscript
}
|
####
其他疑问和解决:
1. 如何改变滚动的日志的权限,
参数:
create mode owner group
默认滚动的新日志的权限,是和上一个日志权限继承过来的。
2. 压缩的时间
决定/usr/sbin/logrotate -f /etc/logrotate.conf 这个的执行时间。默认是
cat /etc/cron.daily/logrotate 和 cat /etc/anacrontab
决定了默认是在凌晨3:00多点的随机时间执行。
如果要改成每天定时呢?
推荐方案:
第一步: 注释默认
cat /etc/cron.daily/logrotate 文件内容注释
第二步:添加压缩的crontab
# Puppet Name: # 零点压缩日志
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf >/dev/null 2>&1
logrotate - rotates, compresses, and mails system logs相关推荐
- 15.2. logrotate - rotates, compresses, and mails system logs
logrotate 的配置文件是 /etc/logrotate.conf.主要参数如下表:参数 功能 compress 通过gzip 压缩转储以后的日志 nocompress 不需要压缩时,用这个参数 ...
- See system logs and 'systemctl status xxx.service' for details.错误的解决方法
启动apache服务出现Job failed. See system logs and 'systemctl status' for details. 2012-02-23 22:00 [root@l ...
- 【异常检测第一篇】DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning
前言 异常检测也属于时间序列问题的一个大分支,记下来一段时间我也会定期分享一些这方面的内容,结合很多ML,DL知识的异常检测和诊断问题,我们一起努力! 笔记很长,请细心阅读~ 一. Address p ...
- ubuntu 系统提示 You are in emergency mode. type “journalctl -xb” to view system logs
ubuntu 系统提示 journalctl -xb 故障现象 故障原因 解决办法 故障现象 ubuntu 系统提示 You are in emergency mode. type "jou ...
- ubuntu启动无法进系统:emergency mode! After logging in, type journalctl -xb to view system logs,
报错:Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, ...
- DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning
DeepLog: 基于深度学习对系统日志进行异常检测和诊断 Min Du, Feifei Li, Guineng Zheng, Vivek Srikumar School of Computing, ...
- Linux日志收集logrotate原理介绍
前言 在Linux环境中能够帮助我们分析问题蛛丝马迹的有效办法之一便是日志,常见的如操作系统syslog日志/var/log/messages,应用程序Nginx日志/var/log/nginx/*. ...
- logrotate 配置
本文接上篇 rsyslogd 用 rsyslog 收集了上百G的日志后,得用另一个Linux自带的脚本: /usr/sbin/logrotate 自动的压缩,分割,归档好历史日志. logrotate ...
- Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd
菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng 商业版 日志系统 syslog syslog 服务 syslog ...
最新文章
- Java内部类手机专卖店_JAVA——内部类的那些事儿
- FPGA开发要懂得使用硬件分析仪调试——ILA
- python 对字典排序
- access 按日期分列_excel的分列功能居然这么强大,赶紧收藏起来
- [国家集训队]最长双回文串 manacher
- 数据“被”覆盖有假象,SQL数据库恢复终极绝招(数据恢复高级技术)
- 基于Tensorflow实现FFM
- Spring的@bean注解
- 给硬盘分个整数大小的区
- geotools 影像切片 缩放
- CMD命令查看IP地址
- Sublime 编译汇编程序
- 阿里 离线数据同步工具 DataX 初试
- 关于new pad利用iPad12的资源缩放的问题 contentScaleFactor设置
- 我裂开了,教给他如何搭建和使用代理服务器,他居然用来做这么不正经的事(爬虫,代理ip)
- 软件项目工程中应该编写的十三类文档
- 现场总线与计算机网络的最大区别,现场总线与局域网的区别是什么
- 安卓性能优化——布局性能优化
- android killer 连接模拟器,AndroidKiller怎么连接夜游神手机模拟器的方法教程
- 原生js高仿浏览器ctrf+f