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里面指定的批处理

最新文章

  1. XAMARIN ANDROID 二维码扫描示例
  2. java笔试面试二
  3. myeclipse 第一个web project
  4. java小程序 示例 菲薄垃圾数列
  5. Windows程序设计-窗口和消息
  6. [转]C 语言指针的使用
  7. Ubuntu下安装composer及配置
  8. GWT开端
  9. sql中with的用法(CTE公用表表达式):应用子查询嵌套,提高sql性能
  10. [再寄小读者之数学篇](2014-06-22 积分不等式 [中国科学技术大学2012年高等数学B考研试题])
  11. elementui异步后台校验表单,修改重复校验
  12. eclipse错误GC overhead limit exceeded
  13. solus 系统 - 自定义终端快捷键
  14. css伪元素:before和:after用法详解
  15. 20155238 2016-2017-2 《Java程序设计》第五周学习总结
  16. Android学习笔记八:用Broadcast Receiver跨进程(跨app)通信
  17. cpu监控之二:dstat
  18. 【BZOJ】1336: [Balkan2002]Alien最小圆覆盖
  19. LoadRunner11设置场景百分比模式完成多台客户端压力测试
  20. 控件禁用与启easyui用

热门文章

  1. 题解-CF1065E Side Transmutations
  2. 阿里云服务器搭建java环境(jdk+tomcat+oracle11g)
  3. SpringBoot整合Swagger2详细教程
  4. js 传输数据 加密
  5. Golang之应用测试
  6. RHCSA 复习
  7. C# 两个时间相减 计算两个时间差(年月日时分秒)
  8. C# 将json字符串进行排序 转成键值
  9. 登录&amp;单点登录介绍
  10. Java学习日报7.9