日志轮替之所以可以在指定的时间备份日志,是因为其依赖系统定时任务。如果大家还记得 /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. php如何读写excel
  2. oracle 更新丢失
  3. python 将PascalVOC(XML)格式的标注数据批量转换为YOLO(txt)格式的标注数据
  4. Android7.1的EDP屏替换
  5. 深圳php和java,深圳java技术培训学习(Java和PHP区别)
  6. C#颜色和名称样式对照表【转载】
  7. rfid在高速公路管理中的应用_RFID技术与ETC技术在弱电门禁系统中应用
  8. Intellij IDEA Debug调试技巧
  9. 基于ISM的大数据在建筑领域中的应用障碍分析
  10. python 倒数_【IT专家】python实现文件倒数N行读取
  11. Spring Boot加载指定属性文件
  12. 利用Splatting提交参数(Hash,哈希)
  13. 远程修改服务器登录密码,远程服务器修改登录密码
  14. 不会优化数据库,早晚被优化!
  15. XshellXftp免费版本申请
  16. 云队友丨知乎10万赞回答:真正厉害的人,是怎么分析问题的?
  17. Windows无法解压文件-potentially harmful
  18. .NET中Hangfire快速入门和使用-迷恋自留地
  19. C++的双缓冲队列机制
  20. 精美五子棋源码c语言,界面非常漂亮的五子棋源代码

热门文章

  1. R计算混淆矩阵(Confusion Matrix)
  2. qiime2安装和使用案例
  3. Hybrid de novo tandem repeat detection using short and long reads 使用短读和长读的混合从头到尾串联重复检测
  4. 树莓派开发7-Pi摄像头+mjpg-streamer
  5. 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?
  6. tensorflow gan网络流程图
  7. Jupyter Notebook 使用流程
  8. Android中onClick(DialogInterface dialog,int which)函数和onClick(View v)函数
  9. LeetCode 421. Maximum XOR of Two Numbers in an Array--Python解法
  10. 使用poi读取公式错误,xlsx和xls在poi3.8后都支持公式读取,读取后有计算错误公式,解决方法