Linux下日志管理工具Logrotate
背景:
项目上的Nginx和Tomcat已经跑了大半年了,Nginx的access.log和error.log将近1G大小;Tomcat下的catalina.out日志经常跑到打不出日志然后进行手动移动到别的目录,重新生成新的catalina.out文件来解决。
Logrotate:
logrotate是Linux系统自带的日志切割工具,可以按月、周、天来切割日志文件并压缩,解决了日志备份以及备份日志的可读性。其基于crontab运行,系统自动触发。
logrotate配置文件相关:
- 运行脚本
/etc/cron.daily/logrotate:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
- 配置文件
/etc/logrotate.d/下:
-rw-r--r--. 1 root root 178 Nov 24 2015 chrony
-rw-r--r--. 1 root root 71 Jul 21 2015 cups
-rw-r--r--. 1 root root 172 Nov 20 2015 iscsiuiolog
-rw-r--r--. 1 root root 165 Nov 21 2015 libvirtd
-rw-r--r--. 1 root root 163 Nov 21 2015 libvirtd.qemu
-rw-r--r--. 1 root root 893 Nov 21 2015 mariadb
-rw-r--r--. 1 root root 106 Mar 6 2015 numad
-rw-r--r--. 1 root root 136 Jun 10 2014 ppp
-rw-r--r--. 1 root root 408 Mar 6 2015 psacct
-rw-r--r--. 1 root root 115 Nov 21 2015 samba
-rw-r--r--. 1 root root 224 Sep 8 2015 syslog
-rw-r--r--. 1 root root 100 Jun 16 2015 wpa_supplicant
-rw-r--r--. 1 root root 100 Dec 3 2015 yum
- 配置文件参数详解:
compress:对转储后的日志文件进行压缩;
nocompress:不对转储的日志文件进行压缩;
delaycompress:与 compress 一起使用,转储的日志文件到下一次转储进行压缩;
nodelaycompress:与 compress 一起使用,转储的日志文件本次转储进行压缩;
copytruncate:备份正在打开的日志文件,将当前节点之前的文件备份出来,然后清空源文件;
nocopytruncate:直接备份整个日志文件,不做切割处理;
create mode owner group:使用指定属性创建新文件;
nocreate:不建立新的日志文件;
ifempty:如果文件为空也转储;
notifempty:如果是空文件的话,不转储;
missingok:如果日志文件丢失,不报错继续下一个日志文件转储;
errors address:把转储时的错误信息发送到指定的Email 地址;
mail address:把转储的日志文件发送到指定的E-mail 地址;
nomail:转储时不发邮件;
olddir directory:转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统;
noolddir:转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript:在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行;
postrotate/endscript:在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行;
daily:指定转储周期为每天;
weekly:指定转储周期为每周;
monthly:指定转储周期为每月;
dateext:使用当前日期作为转储文件的命名格式,没有此配置转储文件以1、3、4....为格式;
dateformat:配合dateext使用,定义转储文件格式,只支持%Y%m%d%s四个参数;
rotate count:指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份;
size size:当日志文件到达指定的大小时才转储,Size 可以指定 bytes 以及KB 或者MB;
- Tomcat日志
catalina.out日志配置转储:
vim /etc/logrotate.d/tomcat
/data/opt/tomcat8/logs/catalina.out {
daily
rotate 30
compress
delaycompress
copytruncate
notifempty
missingok
dateext
}
- Nginx日志
access.log和error.log日志配置转储:
vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log{
daily
rotate 365
missingok
notifempty
compress
dateext
sharedscripts
postrotate
systemctl reload nginx.service
endscript
}
- 调试与测试:
logrotate -d /etc/logrotate.d/nginx #调试模式
#logrotate命令参数
logrotate --help
Usage: logrotate [OPTION...] <configfile>
-d, --debug 调试模式,输出调试结果并不执行;
-f, --force 强制模式,对所有文件进行rotate操作;
-m, --mail=command 发送邮件(instead of `/bin/mail')
-s, --state=statefile 状态文件;
-v, --verbose 显示debug信息,配合-d参数使用;
--version 显示版本信息;
- 设置logrotate定时任务执行时间:
vim /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=0 #默认为45即45分钟,设置0即延迟时间为0;
# the jobs will be started during the following hours only
START_HOURS_RANGE=0-1 #默认3-22,即凌晨3点到22点,设置为0-1;
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Linux下日志管理工具Logrotate的更多相关文章
- 【转】Linux下XenServer管理工具安装
转载文章 - Linux下XenServer管理工具安装 Xen-Server 6.5 虚拟机安装Linux系统 vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) ...
- Linux下批量管理工具pssh安装和使用
Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...
- 简单好用的日志管理工具 Logrotate
前言 日志就像程序的生命记录仪,详细记录下了程序运行的点点滴滴. 慎重的选择记录哪些日志:在茫茫日志海中寻找真正记录问题的日志,你是不想经历的: 精心的定时压缩转移日志:故障发生了,日志却丢了,此时的 ...
- 日志管理工具logrotate
工作所需,需要管理脚本的打印日志,百度一圈,发现了logrotate这款工具,经测试确实挺好的! 话不多说,直接上重点,以便于以后需要时查看 命令: whereis logrotate 可以看到log ...
- 2017.7.21 linux下进程管理工具supervisord的安装与使用
参考来自:http://blog.haohtml.com/archives/15145 0 操作环境 1 supervisord的介绍 Supervisord是用Python实现的一款非常实用的进程管 ...
- Linux下批量管理工具PSSH
pssh命令 pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认 ...
- Linux下批量管理工具pssh使用记录
pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器:pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的:比起for循环的做法,我更推荐使用 ...
- windows下运行的linux服务器批量管理工具(带UI界面)
产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...
- 日志管理工具之logrotate
Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...
- 使用Linux自带日志滚动工具logrotate滚动redis日志示例
截至到redis-5.0版本,redis仍然不会自动滚动日志文件,如果不处理则日志文件日积月累越来越大,最终将导致磁盘满告警: # ls -lh total 12G -rw-r--r-- 1 redi ...
随机推荐
- Quartz 简单使用
Scheduler 每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也是新的) Quzrtz 定时任务默认都是并发执行,不会等待上一次 ...
- 在web浏览器中如何操作复合IC卡
在web浏览器中如何操作复合IC卡呢, 对于使用javascript的工程师而言,非常简单,只需要几行代码即可实现.当然在写代码之前, 需要安装友我NFC读写器web插件, 然后插上NFC读写器YW- ...
- 使用select需要注意的细节
使用select需要注意的细节 在学校的时候就使用过select,但是在项目中使用的时候却犯了个错误. select如何使用就不进行总结了,网上教程太多,以下是项目中我写的一小段代码,便于总结. in ...
- 【Dotnet 工具箱】JIEJIE.NET - 强大的 .NET 代码混淆工具
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! JIEJIE.NET - 强大的 .NET 代码混淆工具 JIEJIE.NET JIEJIE.NET ...
- [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection
Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...
- ABC267G Increasing K Times 题解
做这道题,很有感悟,发篇文. 先给数列从小到大排个序. 接下来设 \(f_{i,j}\) 表示前 \(i\) 个数的排列形成 \(j\) 个上坡的方案数. 接下来考虑转移,分为插入第 \(i\) 个数 ...
- 5分钟实现调用ChatGPT接口API实现多轮问答
5分钟实现调用ChatGPT接口API完成多轮问答 最近ChatGPT也是火爆异常啊,在亲自使用了几个月之后,我发现这东西是真的好用,实实在在地提高了生产力.那么对于开发人员来说,有时候可能需要在自己 ...
- fiddler简单使用
fiddler简单使用 下载 网上找资源下载 安装 一路同意就可以了 使用 1.配置https证书 这些项全选,然后信任证书,就可以抓到ssl的包 2.改变网络端口 3.改写网页代码 以爬虫网为例,先 ...
- C++中的字符串编码处理
今天由于在项目中用到一些与C++混合开发的东西 ,需要通过socket与C++那边交换数据,没啥特别的,字节码而已,两边确定一种编码规则就行了.我们确定的UTF-8.关于C++的 这种又是宽字节 又是 ...
- Vue入门浅析
title: vue入门浅析 author: Sun-Wind date: May 14,2022 写这篇博文的目的在于为初学vue的同学对vue有一些更进一步的了解 读这篇博文前,您应该至少安装了v ...