logrotate

在工作中经常会有需求去查看日志,无论是通过应用或者系统error日志去查找问题或者通过nginx的访问日志统计站点日均PV、UV。所以体现了日志的重要性,但是通常当业务越来越大的时候各项目产生的日志将会是个很大的数字,尤其是我们会需要查找往期的日志,这时候就需要对日志进行合理的备份保留。随着时间的累计,一个日志文件将会变得很大,我们通过命令去查找需要的日志段的时候就会显得非常困难,所以我们需要读各类日志进行切割轮询处理。

logrotate是系统自带的日志切割工具,它配合crond和shell脚本可以实现对日志的切割轮询。以下将介绍如何使用logrotate。

1、查看本机logrotate

[root@iZ28ed866qmZ data]# which logrotate
/usr/sbin/logrotate

2、在任意目录下创建logrotate执行文件

[root@iZ28ed866qmZ data]# mkdir logrotate
[root@iZ28ed866qmZ logrotate]# vim tomcat_log1.conf

/workspace/service_platform/apache-tomcat-7.0.69-jd1/logs/catalina.out{ #产生日志的路径
       copytruncate
       daily
       dateext
       missingok

}

3、logrotate参数详解

daily: 指定转储周期为每天
weekly: 指定转储周期为每周

monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’

rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除

compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩

missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误

notifempty: 如果日志文件为空,轮循不会进行

create 644 root root:以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件

dateext: 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期

compress: 通过gzip 压缩转储旧的日志

delaycompress: 当前转储的日志文件到下一次转储时才压缩

notifempty: 如果日志文件为空,不执行切割

sharedscripts: 只为整个日志组运行一次的脚本

postrotate/endscript: 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

size:  size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem)

3、通过crond定时执行

[root@iZ28ed866qmZ logrotate]# crontab -l
##tomcat log##
* * * /usr/sbin/logrotate -f /data/logrotate/tomcat_log1.conf

4、通过脚本备份按期清理

[root@iZ28ed866qmZ scripts]# cat log1_polling.sh
#!/bin/sh logs_path="/workspace/service_platform/apache-tomcat-7.0.69-jd1/logs"
c_log=catalina.out
a_log=localhost_access_log
find $logs_path -name "catalina.*-*-*.log" -exec rm -rf {} \;
for i in $(seq );
do
dates=`date +"%Y%m%d" -d "-${i}day"`
dates2=`date +"%Y-%m-%d" -d "-${i}day"`
cd $logs_path
tar zcf $a_log.$dates.tar.gz $a_log.$dates2.txt
tar zcf $c_log.$dates.tar.gz $c_log-$dates
sleep
wait
find $logs_path -mtime + -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $logs_path -mtime + -name "catalina.out-*.log" -exec rm -rf {} \; done find $logs_path -mtime + -name "localhost_access_log.*.tar.gz" -exec rm -rf {} \;
find $logs_path -mtime + -name "catalina.*.tar.gz" -exec rm -rf {} \;

5、加入定时任务

[root@iZ28ed866qmZ scripts]# crontab -l
* * * /bin/sh /data/scripts/log1_polling.sh

logrotate+crond日志切割、轮询的更多相关文章

  1. linux 日志定时轮询流程详解(logrotate)

    logrotate介绍 对于Linux系统安全来说,日志文件是极其重要的工具.日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.当日志文件不断增长的时候,就需要定 ...

  2. logrotate nginx日志切割

    1.安装 centos: yum -y install logrotate ubuntu: apt-get install -y logrotate 2. 配置文件 /etc/logrotate.co ...

  3. logrotate工具日志切割

    /var/log/zabbix/zabbix_server.log { daily ##每天转储 rotate ##保留60个备份 olddir /usr/local/src ##保存日志的位置 co ...

  4. logrotate关于日志轮询和分割

    如果你的是源码包安装的服务,那么对于Linux服务器上的一些服务在运行当中产生的日志很重要,可以判断你的服务是否有异常等,但源码包安装的日志是没有日志的轮询或者说是切割能力的, 所以你就需要用到bas ...

  5. Linux环境下使用logrotate工具实现nginx日志切割

    一. 前提背景及需求 nginx运行日志默认保存在nginx安装目录下的 /usr/local/nginx/logs 文件夹, 包含access.log和error.log两个文件. (1) acce ...

  6. Logrotate日志切割

    日志切割Logrotate 关于日志切割 logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用. 可以节省磁盘空间 ...

  7. 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域

    写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更 ...

  8. Nginx 访问日志轮询切割

    Nginx 访问日志轮询切割脚本 #!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/application/nginx" Nginxlog ...

  9. Nginx的继续深入(日志轮询切割,重写,负载均衡等)

    Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...

随机推荐

  1. Cadence套件:Capture + Allegro应用笔记

    1.在Allegro中导入Netlist时,需要进行封装路径的设定: 在Setup->User Preference的Path->Library下面,设定所需封装文件(psm).焊盘文件( ...

  2. mysql分区介绍

    http://www.cnblogs.com/chenmh/p/5644713.html 介绍 可以针对分区表的每个分区指定各自的存储路径,对于innodb存储引擎的表只能指定数据路径,因为数据和索引 ...

  3. Django(十七):静态文件、中间件

    一.静态文件 参考:https://www.cnblogs.com/jiajiaba/p/10584329.html 参考:https://docs.djangoproject.com/zh-hans ...

  4. ROS学习笔记3-基础课程之文件系统向导

    准备工作需要使用如下命令安装ros的教程: $ sudo apt-get install ros-<distro>-ros-tutorials 其中,distro为所用ros的发行版本,该 ...

  5. spark shuffle发展历程

    spark2.3 shuffle manager,默认sortShuffleManager // Let the user specify short names for shuffle manage ...

  6. 前端性能优化----reflow(回流)和repaint(重绘)

    什么是reflow和repaint(原文链接:http://www.cnblogs.com/Peng2014/p/4687218.html) reflow:例如某个子元素样式发生改变,直接影响到了其父 ...

  7. 阿里云安装配置nginx

    一.简介 Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供反向代理服务. 二 .安装 1.准备工作 Nginx ...

  8. SQL注入过WAF(11.4 第三十三天)

    WAF是什么? Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).也叫Web防火墙,主要是对Web特有入侵方式的加强防护,如D ...

  9. 微服务框架中springboot启动的一个问题

    微服务中,采用的是springboot构建单个项目,其中一个项目user启动过程中总是启动补起来,相关的地方都没有错,始终启动不起来,而且要命的是控制台不打印日志,日志级别是debug级别的,但是打印 ...

  10. arduino 通过串口接收string,int类型数据

    串口接收string类型数据源码如下 String comdata = ""; void setup() {     Serial.begin(9600); }   void lo ...