在Linux下,日志会不停的增长,为了防止日志文件过大,导致我们无法在日志中快速找到想要的信息,我们会定时对日志文件进行切割。在这里我将使用logrotate切割日志。

(1).logrotate的配置文件

logrotate配置文件主要在两个地方:/etc/logrotate.conf以及/etc/logrotate.d/下的明细配置文件。

其中/etc/logrotate.conf文件是主配置文件,/etc/logrotate.d/下的明细配置文件都会被读入/etc/logrotate.conf进行执行,所以请注意这里还涉及到了公有变量和私有变量。

logrotate的执行是由crond服务来调用的,其脚本是/etc/cron.daily/logrotate,每天自动执行。我们可以看一下脚本具体内容:

简单的说明下,就是/usr/sbin/logrotate工具调用了/var/lib/logrotate/logrotate.status和/etc/logrotate.conf两个文件。然后将执行的结果(就是那个$?,成功为0,不成功为非0)进行判断,非0时执行/usr/bin/logger命令。最后退出。

看完定时计划任务,我们再来看主配置文件/etc/logrotate.conf(也就是公有变量)。具体内容如下:

配置文件参数说明:

missingok  日志切割期间产生错误将被忽略(如果日志丢失,不报错继续切割)

daily、weekly、monthly、yearly  每天、每周、每月、每年执行

create MODE OWNER GROUP  切割后指定创建新的空白文件的属性

nocreate  不建立新的日志文件

rotate N  保留N份,多余删除,不计算新建日志文件

dateext  用当前日期作为后缀命名格式(默认年月日)

dateformat .%s  配合dateext使用,紧跟在下一行出现,定义切割后的文件名,只支持%Y,%m,%d,%s

size/minsize  达到指定大小才会切割,默认单位bytes,还可以是KB和MB

compress  切割结束后,归档并使用gzip格式压缩

nocompress  解除compress参数

delaycompress  总是与compress参数一起使用,指示logrotate不要将最近的归档压缩,压缩将在下一次切割进行。

nodelaycompress  解除delaycompress参数

ifempty  即使日志为空,也执行切割

notifempty  如果日志为空,切割不执行

prerotate/endscript  在所有其他指令之前执行prerotate和endscript之间的命令。

postrotate/endscript  在所有其他指令完成后,postrotate和endscript之间的命令将被执行。

sharescripts  所有日志切割后统一执行一次脚本,如果没有配置该参数,则每个日志切割后都会执行一次脚本。

errors ADDRESS  切割时的错误信息发送到指定的Emial地址

mail ADDRESS  切割日志发送到指定的Email地址

nomail  切割日志不发送邮件

olddir DIRECTORY  切割后的日志文件放入指定目录,必须与当前日志处在同一文件系统

noolddir  切割后的日志文件与当前文件放在同一目录下

copytruncate  用于还在打开中的日志文件,把当前日志备份并截断;先拷贝后清空,可能丢失部分日志

nocopytruncate  备份日志文件,但不截断。

(2).查看上次切割日志时间

/var/lib/logrotate/logrotate.status中默认记录logrotate上次切割日志文件的时间

(3).自定义日志切割

首先将sshd服务产生的日志自定义,作为实验目标

之后创建切割明细配置文件,并强制执行

logrotate的-d选项是预演,-f是强制执行,-v是显示详细过程。

(4).扩展

另外还可使用shell和python进行日志切割,这里我找了一个大佬的文章提供参考:运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)

centos 日志切割_CentOS下的日志切割相关推荐

  1. linux打印JAVA日志命令_Linux下查看日志用到的常用命令

    tail  -n  10  test.log   查询日志尾部最后10行的日志; tail -n +10 test.log    查询10行之后的所有日志; head: 跟tail是相反的,tail是 ...

  2. linux日志按天切割,Linux下用cronolog切割Tomcat日志并删除指定天数前的日志记录

    使用cronolog工具切分Tomcat的catalina.out日志文件 普通用户下载.安装cronolog[tomcat@localhost ~]$ tar -xf cronolog-1.6.2. ...

  3. linux 日志按大小切割_linux下nohup日志切割方案

    1.nohup命令解释: a.语法:nohup [command] [args] [&] b.说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂 ...

  4. Linux的tomcat日志分割,linux下tomcat日志分割

    由于tomcat默认的日志文件不会启动分割,catalina.out文件的不断扩大,导致系统磁盘空间边变小,而且管理也难于管理,所以想用一种工具来分割它.为了管理的方便性,分割日志使每天的日志保存成单 ...

  5. centos mysql 主从_Centos下MySQL主从同步配置

    说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样, 因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slav ...

  6. windows 开启mysql日志记录_windows下mysql日志开启与查询

    修改 my.ini文件 加入以下语句(在没有设置的前提下) log-error=d:/log/mysql/mysql_log_err.txt log=d:/log/mysql/mysql_log.tx ...

  7. 服务器应用日志清理,Linux下Tomcat日志定期清理

    服务器上的tomcat的catalina.out文件越来越大,查看起来很不方便,以前每次都是想起来的时候手工清理一下(cat /dev/null > catalina.out),后来发现了log ...

  8. linux如何查看nohup日志大小,linux下nohup日志输出过大问题解决方案

    最近在一Hadoop测试集群运行一个Spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打 ...

  9. centos mysql部署_CentOS下MySQL 8.0安装部署,超详细!

    MySQL 8正式版8.0.11已发布,官方表示MySQL8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL 5.7 vs 8.0,哪个性能更牛? Mysq ...

最新文章

  1. C#访问远程主机资源的方法
  2. iOS进阶之底层原理-锁、synchronized
  3. 精通移动端布局 - 概念篇 -
  4. 美团Android资源混淆保护实践
  5. MapXtreme 2005新增内容
  6. 面试干货:Java核心技术问题整理
  7. SQL Server中的KILL SPID命令
  8. mysql保存23:59:59时,自动加一秒
  9. Pycharm 转化ui文件为py文件:报错Error in input file: not well-formed (invalid token): line 1, column 1
  10. Eclipse配Tomcat服务器
  11. 计算机辅助设计技术案例,【智能科技学院】学院前沿技术运用课程组开展“计算机辅助设计”专题讲座...
  12. 13.docker exec
  13. GB18030字符编码格式和点阵字库
  14. Android中加载SVGA格式图片
  15. 重庆万州公交车坠江原因公布:乘客与司机激烈争执互殴致车辆失控
  16. Docker Nginx配置(docker.io/nginx)
  17. vue-如何获取上一个路由地址
  18. 听 小城大事 大城大事 总结出来的故事(上篇)
  19. DecimalFormat 保留小数格式化
  20. 找一个有钱的男朋友是什么体验?

热门文章

  1. C++——Lambda函数
  2. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同
  3. html5诗歌变换颜色,关于颜色的现代诗歌
  4. CSS 定位 (Positioning)
  5. IOS后台运行机制详解(一)
  6. 打开共享文件闪退怎么解决_文件共享解决方案-随时随地共享同步访问文件
  7. linux ping程序设计与实现,一步步学Linux网络编程--ping命令的实现分析
  8. weblogic修改java重启_修改weblogic域的jdk
  9. recv java_用于TCP套接字编程的Recv函数
  10. mysql binlog 丢失_mysql数据库binlog丢失引起的问题