Logrotate

​  logrotate是一个被设计来简化系统管理日志文件的工具,在系统运行时,如果产生大量的日志文件,可以使用该工具进行管理,如/var/log/*文件夹是存储系统和应用日志的目录,如果某些日志文件没有设置归档,可能会一直存储变大导致服务器磁盘空间不足。logrotate是开源的自由软件,可以在github上查看到详细介绍。Logrotate

1. 安装

​  我在centos6和Ubuntu18.04上看到都是默认安装好的了,如果没有安装,可以利用各个系统的安装源进行安装:

yum install logrotate #Centos使用安装源安装
apt install logrotate #Ubuntu使用安装源安装
###当然也可以使用github上的源码编译安装

2. 使用

  如果安装好logrotate,会在/etc/目录下有logrotate.conf文件和logrotate.d目录,logrotate.conf是默认的配置文件,logrotate.d目录存储了一些自定义的配置文件。logrotate.conf详细如下所示:

# see "man logrotate" for details
# rotate log files weekly 轮询每周执行一次
weekly # use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog # keep 2 weeks worth of backlogs 保留两个归档文件,因为每周执行一次。即只有两周的归档文件进行保留
rotate 2 # create new (empty) log files after rotating old ones 归档后创建新的文件
create # uncomment this if you want your log files compressed 是否压缩归档的日志文件,这里注释了compress,默认就是不压缩
#compress # packages drop log rotation information into this directory
include /etc/logrotate.d #包含/etc/logrotate.d目录下的配置规则 # no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
} /var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
} # system-specific logs may be configured here

  上面贴出了logrotate.conf的配置文件信息,我们也可以看到logrotate.d目录下定义的配置,如下面的syslog(/etc/logrotate.d/syslog)文件:

/var/log/cron         #匹配/var/log/cron,/var/log/maillog,
/var/log/maillog #/var/log/messages等文件,也可以使用*进
/var/log/messages #行模糊匹配
/var/log/secure
/var/log/spooler
{
weekly #每周执行
compress #压缩,默认使用gzip进行压缩
sharedscripts
postrotate #postrotate...endscript是执行后运行的批处理命令
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true #-HUP参数为挂起进程,更改配置而不需停止并重新启动
endscript
}

​  有了配置文件,那么就可以让logrotate使用配置文件运行了。

logrotate -v /etc/logrotate.conf      #根据配置文件执行,如果已经执行过了,默认不会再次执行,-v为--verbose
logrotate -vf /etc/logrotate.d/syslog #强制根据某一配置文件执行-f为--force #参数可以使用--help查看
logrotate --help
Usage: logrotate [OPTION...] <configfile>
-d, --debug Don't do anything, just test (implies -v)
-f, --force Force file rotation
-m, --mail=command Command to send mail (instead of `/bin/mail')
-s, --state=statefile Path of state file
-v, --verbose Display messages during rotation Help options:
-?, --help Show this help message
--usage Display brief usage message
#或者查看手册,里面也有配置的sample和各个参数介绍
man logrotate

3. 参数介绍

参数 说明
daily 表示每天运行归档一次,除此还有‘weekly’,‘monthly’,‘yearly’
rotate 2 表示保留2个归档文件
dateext 表示归档的文件以日期命名,如yyyyMMdd
compress 归档的文件启用压缩,默认为gzip压缩
nocompress 不启用压缩
create mode owner group, create owner group 归档日志文件后创建新文件的访问权限、所属用户和组等,如create 600 root root
missingok 如果归档的日志文件不存在,不提示错误信息
prerotate...endscript 在归档前执行prerotate和endscript里面指定的批处理
postrotate...endscript 在归档后执行postrotate和endscript里面指定的批处理

Logrotate工具使用的更多相关文章

  1. linux使用logrotate工具管理日志轮替

    对于Linux系统安全来说,日志文件是极其重要的工具.logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节 ...

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

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

  3. 【转】如何利用logrotate工具自动切分滚动中的日志文件

    FROM : http://www.2cto.com/os/201503/381812.html 在很多实际项目中,应用程序会持续写日志,如果程序代码中没有调用支持自动切分(如按filesize或da ...

  4. 系统日志查看logrotate 工具

    logrotate是作为linux系统日志的管理工具存在.他可以轮换,压缩,邮件系统日志文件. 默认的logrotate被加入cron的/etc/cron.daily中作为每日任务执行./etc/lo ...

  5. 关于logrotate工具的日志切割

    logrotate是一个非常好的文件切割工具!! 具体配置如下: /var/log/debug.log{         daily            ; 每天转储         rotate ...

  6. 利用logrotate工具对catalina.out进行日志分割实战

    logrotate是linux自带的日志分割工具,如果没有可以用yum安装 yum -y install logrotate 要配置日志分割定时任务,需要在/etc/logrotate.d/下创建一个 ...

  7. logrotate工具日志切割

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

  8. linux系统日志自动切割工具----logrotate

    参考资料 :https://www.cnblogs.com/kevingrace/p/6307298.html 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务 ...

  9. logrotate日志管理工具与split文件切割命令

    概述 logrotate是一个Linux系统默认安装了的日志文件管理工具,用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数等来转储,便于对日志文件管理. logro ...

随机推荐

  1. 题解-CF1307G Cow and Exercise

    CF1307G Cow and Exercise 给 \(n\) 点 \(m\) 边的带权有向图,边 \(i\) 为 \((u_i,v_i,w_i)\).\(q\) 次询问,每次给 \(x_i\),问 ...

  2. windows 远程连接报错

    在windows7上或者windows10上远程连接服务器报错("连接错误"),试了网上的方法,发现是服务器安装ssl证书关闭了ssh服务,开启ssh服务后,重启电脑就可以解决这个 ...

  3. JavaScript:常用的一些数组遍历的方法

    常用的一些遍历数组的方法: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. vue第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件)

    第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件) #课程目标 掌握vue实例的相关属性和方法的含义和使用 了解vue的数据响应原理 熟悉创建组件,了解全局 ...

  5. 华为Mate20 Adb驱动失败

    今天拿到同事一台华为Mate20,准备装个包,结果发现adb一直 no devices,AndroidStudio当然也显示 no connected devices 开发者模式也打开了,USB调试也 ...

  6. 【超详细】MakeDown(Typora)+PicGo+Gitee实现图床

    [超详细]MakeDown(Typora)+PicGo+Gitee实现图床 序言:我们有时在用makedown整理笔记时想把自己的笔记上传到博客园,可是发现在上传过程中makedown中的图片显示不出 ...

  7. DotfuscatorPro防止反编译&ILSpy反编译

    DotfuscatorPro_4.9可以防止你的.NET软件被反编译,可以在一定程度上防止你的软件被反编译.现在很多软件都有被反编译的现象,虽然不能做到百分百的防范,但是你至少可以先做些技术上的处理, ...

  8. Web项目Bin目录下的文件改动会引发Application_End事件,IIS会回收线程

    原博文 https://blog.csdn.net/caca95/article/details/85284309 处理方法 Web项目Bin目录下的文件改动会引发Application_End事件, ...

  9. 【磁盘/文件系统】第三篇:标准磁盘分区流程针对parted(一般硬盘容量大于2T(但是小于2T也可以进行分区);分区数最大是支持100多个分区)

    说明: 在 Linux 上可以采用 parted 来对磁盘进行分区 1.通过 fdisk -l 可以查看磁盘是否存在, 由于使用的是大磁盘(大于2T),fdisk 不能用来作为分区工具了,而应该使用 ...

  10. Salesforce LWC学习(三十) lwc superbadge项目实现

    本篇参考:https://trailhead.salesforce.com/content/learn/superbadges/superbadge_lwc_specialist 我们做lwc的学习时 ...