日志轮替之所以可以在指定的时间备份日志,是因为其依赖系统定时任务。如果大家还记得 /etc/cron.daily/ 目录,就会发现这个目录中是有 logrotate 文件的,查看一下这个文件,命令如下:

[root@localhost ~]# vi /etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1

#最主要的就是执行了logrotate命令

EXITVALUE=$?

if [ $EXITVALUE!= 0 ]; then

/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

fi

exit 0

也就是说,系统每天都会执行 /etc/cron.daily/logrotate 文件,运行这个文件中的“/usr/sbin/logrotate/etc/logrotate.conf>/dev/null 2>&1”命令。logrotate 命令会依据 /etc/logrotate.conf 配置文件的配置,来判断配置文件中的日志是否符合日志轮替的条件(比如,日志备份时间已经满一周),如果符合,日志就会进行轮替。所以说,日志轮替还是由 crond 服务发起的。

logrotate 命令的格式是什么样的呢?我们来学习一下。

[root@localhost ~]# logrotate [选项] 配置文件名

选项:

如果此命令没有选项,则会按照配置文件中的条件进行日志轮替

-v:显示日志轮替过程。加入了-v选项,会显示日志的轮替过程

-f: 强制进行日志轮替。不管日志轮替的条件是否符合,强制配置文件中所有的日志进行轮替

我们执行 logrotate 命令,并查看一下执行过程。

[root@localhost ~]# logrotate -v /etc/logrotate.conf

#查看日志轮替的流程

…省略部分输出…

rotating pattern:/var/log/alert.log weekly (6 rotations)

#这就是我们自己加入轮替的alert.log日志

empty log files are rotated, old logs are removed

considering log /var/log/alert.log

log does not need rotating

#时间不够一周,所以不进行日志轮替

…省略部分输出…

我们发现,/var/log/alert.log 加入了日志轮替,已经被 logrotate 识别并调用了,只是时间没有达到轮替的标准,所以没有进行轮替。那我们强制进行一次日志轮替,看看会有什么结果。

[root@localhost ~]# logrotate -vf /etc/logrotate.conf

#强制进行日志轮替,不管是否符合轮替条件

…省略部分输出…

rotating pattern:/var/log/alert.log forced from command line (6 rotations)

empty log files are rotated, old logs are removed

considering log /var/log/alert.log

log needs rotating

#日志需要轮替

rotating log /var/log/alert.log,log->rotateCount is 6

dateext suffix '-20130607'

#提取日期参数

glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

glob finding old rotated logs failed

running prerotate script

fscreate context set to unconfined_u:object_r:var_log_t:s0

renaming /var/log/alert.log to /var/log/alert.log-20130607

#旧的日志被重命名

creating new /var/log/alert.log mode = 0600 uid = 0 gid = 0

#创建新日志文件,同时指定权限、所有者和属组

running postrotate script

…省略部分输出…

我们发现,alert.log 日志已经完成了日志轮替。查看一下新生成的日志和旧日志,如下:

[root@localhost ~]# ll /var/log/alert.log*

-rw-------.1 root root 0 6月 7 10:07 /var/log/alert.log

-rw-------.1 root root 237 6月 7 09:58 /var/log/alert.log-20130607

#旧的日志文件已经轮替

[root@localhost ~]# lsattr /var/log/alert.log

-----a-------e- /var/log/alert.log

#新的日志文件被自动加入了chattr的a属性

logrotate 命令在使用“-f”选项之后,就会不管日志是否符合轮替条件,而强制把所有的日志都进行轮替。

linux日志怎么进行转储,Linux logrotate命令用法详解:进行日志转储(轮替)相关推荐

  1. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  2. linux 指令tftp传输文件_Linux tftp 命令用法详解-Linux命令大全(手册)

    tftp 在本机和tftp服务器之间使用TFTP协议传输文件 补充说明 tftp命令 用在本机和tftp服务器之间使用TFTP协议传输文件. TFTP是用来下载远程文件的最简单网络协议,它其于UDP协 ...

  3. linux教程 sed命令的用法,Linux基础教程之文件三剑客sed命令用法详解

    sed是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活. 工作原理:sed命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为"模式空 ...

  4. linux bin fuser,Linux中fuser命令用法详解

    描述: fuser可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID. 默认情况下每个文件名后面跟一个字母 ...

  5. linux中用less命令,Linux less 命令用法详解

    原标题:Linux less 命令用法详解 less 是一个Linux命令行实用程序,用于显示文件或命令输出的内容,它一次只显示一个页面.它类似于 more ,但具有更高级的功能,允许您在文件中向前和 ...

  6. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  7. linux中cat、more、less命令区别详解

    linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...

  8. Linux下find命令用法详解

    Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录查找名称为test的 ...

  9. 【Linux】Linux中rz和sz命令用法详解

    [Linux]Linux中rz和sz命令用法详解 1. 简单介绍 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具.优点就是不用再开一个sftp工具登录上去上传下载 ...

最新文章

  1. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)
  2. 面对滚滚而来好政策 安防行业该如何发展
  3. JavaScript实现prim普里姆算法(附完整源码)
  4. oracle文件管理
  5. 通向架构师的道路(第十二天)之Axis2 Web Service(三)
  6. ABAP Netweaver Webcontent path的determine逻辑
  7. mysql怎么回复.from的数据库_mysql怎么回复.from的数据库
  8. python中复选框取消修改_python – 如何在PySide / PyQt中设置“只读复选框”
  9. linux 定时执行搅拌,Linux上定时shell脚本
  10. SpringBoot邮件服务
  11. 大部分人其实根本就不上进,他们只是表现的很努力
  12. 半深入理解CSS3 object-position/object-fit属性
  13. silverlight DataPager控件
  14. mysql强制安装参数_Mysql编译安装参数优化
  15. vmware中修改虚拟机MAC地址的方法!
  16. 基于CarMaker的C-NCAP主动安全系统试验仿真(二)
  17. bim 水利枢纽 运维_BIM——运维专篇
  18. All-Pay Contests(博弈论+机制设计) 论文阅读笔记
  19. 全国哀悼日 灰色CSS滤镜
  20. 可编程式坐标--单位圆坐标

热门文章

  1. RuntimeWarning:Glyph 21435 missing from current font.
  2. 通过mrtrix3进行概率纤维追踪+核磁共振影像数据处理
  3. 社交媒体分析-恶意内容自动检测相关论文
  4. 服务器连接超时不响应怎么回事,勇者斗恶龙x服务器没有响应连接超时解决方法...
  5. Ubuntu 18.04 配置 国内 apt-get 换源
  6. 13.最为经典的动态规划入门
  7. 大数据分布式集群搭建(9)
  8. 图像去噪--Noise2Noise: Learning Image Restoration without Clean Data
  9. struts2中使用json遇到的问题总结及示例程序
  10. mysql localhost无法登陆_MySQL 'root'@'localhost'无法登录