日志切割清理工具 Log-Cutter
Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具。对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过 2G 大的日志文件进行切割,保留最新的 100M 日志记录? 网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用 Java 实现。本工具命名为 Log-Cutter,主要有以下特点:
支持 Linux、Mac 和 Windows 等所有常见操作系统平台
支持命令行交互式运行
支持后台非交互式运行(Linux/MAC 下使用 daemon 进程实现,Windows 用系统 Service 实现)
支持三种日志清理方式:删除日志文件、切割日志文件、归档日志文件
支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割
高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置)
详细说明与使用方法参考:《操作指南》
使用方法:
************************************************************** **** LogCutter - JessMA Open Source, all rights reserved. **** **************************************************************一、环境要求 -------------------------------------------------- 1) Java 版 本: JDK / JRE 1.6 以上 2) 依赖程序包: dom4j、log4j、ant、juniversalchardet --------------------------------------------------二、配置文件 -------------------------------------------------- 1) 程序配置文件: conf/config.xml (默认)(示例参考:conf/config-template.xml) 2) 日志配置文件: conf/log4j2.xml (默认)(示例请参考:conf/log4j2.xml) --------------------------------------------------三、安装部署 (注 :LogCutter 需要配置 ‘JAVA_HOME’ / ‘JRE_HOME’ 和 ‘CLASSPATH’ 系统环境变量) -------------------------------------------------- 1) 配置系统环境变量 ‘JAVA_HOME’(或 ‘JRE_HOME’) 和 ‘CLASSPATH’ 2) 在 LogCutter配置文件(默认:conf/config.xml)中配置清理规则 3) 启动 LogCutter --------------------------------------------------四、启动方式 -------------------------------------------------- 1) WindowsA) 前台运行: > run.bat [ -f config-file ]B) 后台运行: > LogCutter.exe { -install-demand (安装手动启动服务)-install-auto (安装自动启动服务)-uninstall (删除服务)-start (启动服务)-stop (停止服务)-status (查看服务状态)}*** 注 *** @ LogCutter.exe 以 Windows 系统服务的方式运行,安装好后也可以通过 Windows 服务管理器进行管理@ LogCutter.exe 是 32 位程序,LogCutter_x64.exe 是 64 位程序,根据当前系统平台使用其中之一C) 单次运行: > run.bat -1 [ -f config-file ]2) Linux / UnixA) 前台运行: $ run.sh [ -f config-file ]B) 后台运行: $ run.sh [ -f config-file ] -dC) 单次运行: $ run.sh -1 [ -f config-file ] [ -d ]*** 注 ***@ 可以把 run.sh 启动命令加入 /etc/rc.d/rc.local 中,从而设置为开机时自动运行@ 可以把 run.sh -1 放入 CronTab 中定期执行,并且不用常驻内存,如:## 30 2 * * 2,4,6 root /usr/local/LogCutter/bin/run.sh -1 > /dev/null --------------------------------------------------
配置文件
<?xml version="1.0" encoding="UTF-8"?> <CONFIG xmlns="http://www.jessma.org"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.jessma.org http://www.jessma.org/schema/log-cutter-cfg-2.0.xsd"><global><!-- 开始日志检查延时 (小时), 默认: 0 (立刻开始)1) 当指定为一个整数值时,执行器首次启动延时时间为该值设定的小时数(例如:12 小时后首次启动执行器)<start-check-delay>12</start-check-delay>2) 当指定为一个 ‘hh:mm’ 格式的值时,执行器首次启动时间为该时分值(例如:12 点 34 分首次启动执行器,如果当前时间超过 12 点 34 分则在明天的 12 点 34 分首次启动执行器)<start-check-delay>12:34</start-check-delay>--><!-- 02 点 30 分首次启动执行器 --><start-check-delay>02:30</start-check-delay><!-- 日志检查间隔 (小时), 默认: 72 --><check-interval></check-interval><!-- Log4J 配置文件, 默认: ${CLASS_ROOT}/../conf/log4j.properties --><log4j-config-file></log4j-config-file><!-- 进程锁文件, 默认: ${CLASS_ROOT}/../${APP_NAME}.lock --><lock-file></lock-file></global><!-- 要删除的日志文件列表(可配置多个,由 DelFileRunner 执行)1) DelFileRunner 会递归删除符合条件的文件夹及其中的所有文件2) 注意:在判断是否删除文件夹时,检测的是文件夹的最后修改时间,而不是其中文件的最后修改时间3) DelFileRunner 适用于清理 “定期产生新日志文件” 的应用程序日志--><!-- delete-files.expire: 日志文件过期时间(天), 默认: 90 --><delete-files expire="30"><!-- file.path: 文件所在目录, 必须填写, 不能包含通配符 --><!-- file: 文件或文件夹名称, 必须填写, 可包含通配符 --><file path="D:\LogCutter\logs">LogCutter.log*</file><file path="D:\hMailServer\Logs">*.log</file><file path="D:\Tomcat 6.0\logs">*.log</file></delete-files><delete-files expire="365"><file path="E:\backup">*</file></delete-files><!-- 要截断的日志文件列表(可配置多个,由 CutFileRunner 执行)1) CutFileRunner 只会扫描符合条件的文件,不会扫描文件夹2) CutFileRunner 会截断文件的前部内容,保留后部内容3) CutFileRunner 适用于清理 “日志文件不断追加增长” 的应用程序日志--><!-- cut-files.threshold: 日志文件截断阀值(KB), 默认: 10240 --><!-- cut-files.reserve: 日志文件保留内容(KB), 默认: 1024 --><!--<!注!> 'cut-files.reserve' 是保留内容的近似值, 实际内容按行取整保留如下列日志文件内容:...... ...... ......line1: xxxxxxxxxxxxxxxxxxxxxline2: xxxxxxxxxxPyyyyyyyyyyline3: zzzzzzzzzzzzzzzzzzzzzline4: zzzzzzzzzzzzzzzzzzzzz...... ...... ...... (EOF)'P'为定位得到的保留起点, 程序实际会在'P'点开始查找下一个换行符,从该换行符的后一个字符开始保留, 也就是从第三行开始保留到文件末尾--><cut-files threshold="10240" reserve="512"><file path="D:\Apache-2.2\logs">*.log</file><file path="D:\MySQL Server 5.1\data">*.err</file></cut-files><!-- 要归档的日志文件列表(可配置多个,由 ArcFileRunner 执行)1) ArchiveFileRunner 把符合条件的文件或文件夹压缩归档到指定目录,并删除原文件或文件夹2) 归档文件格式:{原文件/文件夹名称}_{系统时间}.zip3) 注意:在判断是否归档文件夹时,检测的是文件夹的最后修改时间,而不是其中文件的最后修改时间4) ArchiveFileRunner 适用于清理 “定期产生新日志文件或日志目录” 的应用程序日志--><!-- archive-files.expire: 日志文件过期时间(天), 默认: 90 --><!-- archive-files.archive-path: 日志文件归档目录 --><archive-files expire="120" archive-path="E:\backup"><file path="D:\MySQL Server 5.1\data">mysql-bin.*</file></archive-files> </CONFIG>
日志切割清理工具 Log-Cutter相关推荐
- java日志切割工具_用 Java 实现的日志切割清理工具
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...
- 服务器log文件清理,服务器日志切割清理工具(LogCutter)
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...
- SQL日志文件查看工具(Log Explorer for SQL Server v4.2)
下载地址:http://download.csdn.net/source/2284248 1.Log Explorer for SQL Server v4.2.1 该软件我比较推荐的 安装完毕后,注册 ...
- 跨平台日志清理工具 Log-Cutter v1.0.3 正式发布
Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...
- 笔记12(36-40)域名重定向,用户认证,nginx访问日志,日志切割
学习笔记 域名重定向 配置第二个域名: vi /etc/nginx/conf.d/blog.aminglinux.cc.conf 在server_name 那一行的域名后面加一个域名,空格作为分隔 n ...
- Nginx 日志配置、日志切割
Nginx 日志配置.日志切割 设置 access.log 语法 log_format自定义格式 设置error_log 语法 日志切割 前置文章:Nginx 的配置文件 nginx.conf Ngi ...
- catalina.out 日志切割及定时清理
一.安装 1.. 安装使用cronolog工具对catalina.out日志文件进行切割 # wget http://cronolog.org/download/cronolog-1.6.2.tar. ...
- Linux日志切割工具logrotate原理和配置详解
前言: 对于Linux系统安全来说,日志文件是及其重要的工具 一.logrotate概念 1.1 概念 logrotate 程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的 ...
- 运维基础(13)日志切割工具 Logrotate
Logrotate 程序是一个日志文件管理工具,用于分割日志文件,压缩转存.删除旧的日志文件,并创建新的日志文件,下面就对 logrotate 日志轮转的记录: Linux 系统默认安装 logrot ...
最新文章
- kali linux samba,Kali Linux 渗透测试:SMB、SMTP扫描工具(14)
- 得了诺奖的彩色照相术失传100多年,现在终于被找回来了
- 超市的100年发展史:好日子终结 亚马逊无人店是趋势
- [开源] .NETCore websocket 即时通讯组件---ImCore
- 设计模式-Factory Method Pattern
- Python快速学习03:运算 缩进和选择
- 【ATT】Reverse Nodes in k-Group
- 你是否发现 职业能力危机,请 警惕
- Centos7 Minimal安装常用工具包
- C++ 数据抽象 封装 接口
- 蚂蚁金服入职考试_程序员入职蚂蚁金服被质疑,网友评论人生污点,不把外包当人?...
- tmux + zsh
- 清北大学计算机专业学习清单,好专业都在清北交复?快来看看这份院校清单,拥有着全国排名【NO.1】的专业...
- Linux防火墙之介绍
- 盘点40种常用的芯片封装技术
- 爬虫爬取千万数据如何快速保存,看这里
- 原创C#Winform桌面应用中实用又美观的开关控件源码分享
- javascript 学习
- 微信公众平台开发(110) 微信连Wi-Fi
- Trying to start MapKit location updates without prompting for location authorization. Must call -[CL