logrotate 日志管理
查看logrotate 是否已安装
因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:
1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。
rpm -qa | grep ruby
2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用 dpkg -l | grep “软件或者包的名字”;
dpkg -l | grep ruby
3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
yum list installed | grep ruby
4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,
上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。
说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令。
安装 logrotate
在Debian或Ubuntu上:
apt-get install logrotate cron
在Fedora,CentOS或RHEL上:
yum install logrotate crontabs
查看logrotate 安装位置
whereis logrotate;
logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下
logrotate 命令
语法: logrotate (选项) (参数)
选项:
-?或--help:在线帮助;
-d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
-f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
-s<状态文件>或--state=<状态文件>:使用指定的状态文件;
-v或--version:显示指令执行过程;
-usage:显示指令基本用法。
参数:要执行的配置文件名称
示例:
日志文件存放位置 /var/log/ 文件夹下(包括分割的日志文件),配置文件在/etc/logrotate.d/ 文件夹下
创建文件:
touch /var/log/log-file
echo 1111 >> /var/log/log-file
为该文件创建一个配置文件:
vim /etc/logrotate.d/log-file #打开文件 自定义配置文件名称
# 写入配置 /var/log/log-file 要分割的日志文件名称 与配置文件名称无关
/var/log/log-file {
monthly
size=50M
rotate 5
dateext
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
配置解析:
- monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
- size: 指定文件当天达到50M的时候才转储
- rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
- dateext: 让旧日志文件以创建日期命名
- compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
- delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
- missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
- notifempty: 如果日志文件为空,轮循不会进行。
- create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
- postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
运行 logrotate
要调用为/etc/lograte.d/下配置的所有日志调用logrotate:
logrotate /etc/logrotate.conf
要为某个特定的配置调用logrotate:
logrotate /etc/logrotate.d/log-file #log-file 日志分割的配置文件名称
排障过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate。要进行验证,不用实际轮循任何日志文件,可以模拟演练日志轮循并显示其输出。
[root@thh69amnzzZ log]# logrotate -d /etc/logrotate.d/log-file
reading config file /etc/logrotate.d/log-file
reading config info for /var/log/log-file Handling 1 logs rotating pattern: /var/log/log-file monthly (5 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/log-file
log does not need rotating
not running postrotate script, since no logs were rotated
正如我们从上面的输出结果可以看到的,logrotate判断该轮循是不必要的。如果文件的时间小于一天,这就会发生了。
即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出。
logrotate -vf /etc/logrotate.d/log-file
如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。
logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file #logrotate-status 记录着 log-file 文件的记录
[root@thh69amnzzZ log]# cat logrotate-status
logrotate state -- version 2
"/var/log/log-file" 2018-3-17
最后根据需求写一个脚本添加 crontab , 定时时间执行即可
编写sh 脚本
#/etc/cron.daily/logrotate
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf #/etc/logrotate.d/log-file 根据自己的需求
在 /var/spool/cron 目录中打开 root 文件,[ 配置说明文件cat /etc/crontab ]添加:
cron 格式
*/1 * * * * 绝对路径脚本文件路径文件名称
#分钟(0~59) 小时(0~23) 几号(1~31) 几月(1~12) 星期几(0~7) 命令
#每行代表都代表一个任务
文件引用:
logrotate 日志管理的更多相关文章
- 【运维工具】logrotate 日志管理神器
服务器经常会产生各种各样的日志文件,我们需要定期清理 日志的分类 系统日志 应用日志 系统日志 例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不 ...
- logrotate日志管理工具与split文件切割命令
概述 logrotate是一个Linux系统默认安装了的日志文件管理工具,用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数等来转储,便于对日志文件管理. logro ...
- logrotate日志管理工具
一.概述 logrotate是一个Linux系统默认安装了的日志文件管理工具,用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数等来转储,便于对日志文件管理. log ...
- 日志管理工具之logrotate
Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...
- 日志管理工具logrotate
工作所需,需要管理脚本的打印日志,百度一圈,发现了logrotate这款工具,经测试确实挺好的! 话不多说,直接上重点,以便于以后需要时查看 命令: whereis logrotate 可以看到log ...
- 用Linux自带的Logrotate来管理日志
Logrotate是由cron控制,cron在规定的时间执行 " logrotate /etc/logrotate.conf "命令.将对象日志进行转储,删除,压缩等操作... ...
- 第13章 Linux日志管理
1. 日志管理 (1)简介 在CentOS 6.x中日志服务己经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其 ...
- linux 学习 14 日志管理
第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...
- Linux学习笔记(21) Linux日志管理
1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式 ...
随机推荐
- SQL 实现行列互换
Oracle:不过大多数是采用 oracle 数据库当中的一些便捷函数进行处理,比如 ”pivot”: MySql:目前没有找到更好的方法 题目:数据库中有一张如下所示的表,表名为sales. 年 季 ...
- C#高级参数params的使用
params,可变参数,使用十分简单,看代码吧. using System; using System.Collections.Generic; using System.Linq; using Sy ...
- 玩转Jquery
一 jquery简介 1 jquery是什么 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype ...
- Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境
Windows系统 为 Visual Studio软件 搭建 OpenCV2 开发环境 我们的电脑系统:Windows 10 64位 Visual Studio 软件:Visual Studio 20 ...
- docker学习(1)docker的安装
原文地址:http://blog.csdn.net/we_shell/article/details/38352837 1. 前言 Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬 ...
- Luogu 2470 [SCOI2007]压缩
和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...
- Linux脚本设计4——一些实用程序
实用程序1:列目录 #!/bin/bash path=`echo $PATH | sed 's/:/ /g'` for d in $path do echo $d done 这是一个for循环,注意p ...
- 最新解决VS2017+ Mysql + EF 创建实体数据模型 闪退的办法
研究下来,就是最新的版本兼容性不好啊. 1.找到MySql管网,下载历史版本: mysql-connector-net-6.9.12 mysql-for-visualstudio-1.2.8 2.Nu ...
- excel导入工具
1 介绍 excel导入工具 整个项目的代码结构如下 \---excelExport # 导出工具包 | AsyncExportExcel.java #多线程导出 | ExcelImport.java ...
- 在Tomcat启动时直接创建servlet(二)