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. 使用 XMLBeans 进行编程

      深入考察 XMLBeans 的特性和功能.本文通过一个简单的例子介绍 XMLBeans 技术,然后一步一步地介绍编译和绑定的过程,讨论 XML 游标.标记和 XQuery 表达式等高级特性.本文还 ...

  2. 一、Linux&配置,依赖安装&Tomcat,Mysql,jdk安装

    基础知识: 1 OS Operation System 作用:控制硬件,服务软件 2 VMware虚拟机: 虚拟出一台计算机环境 配置两个虚拟网卡,适配器里查看 3 在虚拟机上安装操作系统Linux ...

  3. SciPy 积分

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  4. MySQL学习之SQL基础(一)DML

    DML(data Manipulation language) INSERT DELETE UPDATE SELECT INSERT mysql> desc emp; +----------+- ...

  5. Linux-Journal

    Linux-Journal 1. 日志简介 2. 日志的优先级和分类 2.1 优先级 2.2 设施分类 3. 命令帮助 4. 日志查看示例 5. 日志大小限制 6. 手动清理日志文件 1. 日志简介 ...

  6. select rank() over

    select * from (select rank() over(partition by barcode order by sheetdate) num, * from ScanRecord wh ...

  7. SSM 整合配置以及一个简单登陆案例(个人记录)

    SSM 文件以及大部分参考博客 https://blog.csdn.net/qq598535550/article/details/51703190 简答的登陆注册案例下载链接在末尾补贴图了 我建立的 ...

  8. spctl命令返回的结果输入到文本中

    说一下我遇到的问题. mac自动打包完之后上传到苹果商店公正,公正后需要检查一下公正的结果, spctl -a -v LBCast.app #查看是否公证成功   显示如下表示公证成功了,有Notar ...

  9. maven-本地安装jar包

    maven 安装本地jar包,通过install插件的install-file mojo进行工作,具体可通过如下命令进行查看 mvn help:describe -Dplugin=install -D ...

  10. JavaScript 对象所有API解析【2020版】

    JavaScript 对象所有API解析[2020版] 写于 2019年08月20日,虽然是2019年写的文章,但现在2020年依旧不过时,现在补充了2019年新增的ES10 Object.fromE ...