18.3 【Linux】登录文件的轮替(logrotate)

简介: 18.3 【Linux】登录文件的轮替(logrotate)
+关注继续查看

18.3.1 logrotate 的配置文件

logrotate 主要是针对登录文件来进行轮替的动作,他必须要记载“ 在什么状态下才将登录文件进行轮替”的设置。logrotate 这个程序的参数配置文件在:


/etc/logrotate.conf


/etc/logrotate.d/


logrotate.conf 才是主要的参数文件,至于 logrotate.d 是一个目录, 该目录里面的所有文件都会被主动的读入 /etc/logrotate.conf 当中来进行!另外,在 /etc/logrotate.d/ 里面的文件中,如果没有规定到的一些细部设置,则以 /etc/logrotate.conf 这个文件的规定来指定为默认值!


logrotate 的主要功能就是将旧的登录文件移动成旧文件, 并且重新创建一个新的空的文件来记录,他的执行结果有点类似下面的图示:

image

由上面的图示我们可以清楚的知道,当第一次执行完 rotate 之后,原本的 messages 会变成messages.1 而且会制造一个空的 messages 给系统来储存登录文件。而第二次执行之后,则messages.1 会变成 messages.2 而 messages 会变成 messages.1 ,又造成一个空的messages 来储存登录文件!那么如果我们仅设置保留三个登录文件而已的话,那么执行第四次时,则 messages.3 这个文件就会被删除,并由后面的较新的保存登录文件所取代!基本的工作就是这样。


下面是logrotate.conf中的默认内容:

image


由这个文件的设置我们可以知道 /etc/logrotate.d 其实就是由 /etc/logrotate.conf 所规划出来的目录,所以,其实我们可以将所有的数据都给他写入 /etc/logrotate.conf 即可,但是这样一来这个文件就实在是太复杂了,尤其是当我们使用很多的服务在系统上面时, 每个服务都要去修改 /etc/logrotate.conf 的设置也似乎不太合理。所以,如果独立出来一个目录,那么每个以RPM 打包方式所创建的服务的登录文件轮替设置, 就可以独自成为一个文件,并且放置到/etc/logrotate.d/ 当中即可。


一般来说,这个 /etc/logrotate.conf 是“默认的轮替状态”而已, 我们的各个服务都可以拥有自己的登录文件轮替设置。如果你的系统空间够大,并且担心出错及骇客的问题,那么可以:


将 rotate 4 改成 rotate 9 左右,以保存较多的备份文件。


大部分的登录文件不需要 compress,空间太小就需要compress,尤其是很占硬盘空间的 httpd 更需要 compress 的。


logrotate.conf 的设置语法是:

image

下面我们再以 /etc/logrotate.d/syslog 这个轮替 rsyslog.service 服务的文件,来看看该如何设置他的 rotate:

image

在上面的语法当中,我们知道正确的 logrotate 的写法为:


文件名:被处理的登录文件绝对路径文件名写在前面,可以使用空白字符分隔多个登录文件;

参数:上述文件名进行轮替的参数使用 { } 包括起来;

执行脚本:可调用外部指令来进行额外的命令下达,这个设置需与 sharedscripts ....endscript 设置合用才行。至于可用的环境为:

1.prerotate:在启动 logrotate 之前进行的指令,例如修改登录文件的属性等动作;

2.postrotate:在做完 logrotate 之后启动的指令,例如重新启动 (kill -HUP) 某个服务!

3.Prerotate 与 postrotate 对于已加上特殊属性的文件处理上面,是相当重要的执行程序!

那么 /etc/logrotate.d/syslog 内设置的 5 个文件的轮替功能就变成了:


该设置只对 /var/log/ 内的 cron, maillog, messages, secure, spooler 有效;

登录文件轮替每周一次、保留四个、且轮替下来的登录文件不进行压缩(未更改默认值);

轮替完毕后 (postrotate) 取得 syslog 的 PID 后,以 kill -HUP 重新启动 syslogd


18.3.2 实际测试 logrotate 的动作

image

上面那个 -f 具有“强制执行”的意思,如果一切的设置都没有问题的话,那么理论上,你的/var/log 这个目录就会起变化。


相关文章
|
4天前
|
Linux Shell C语言
Linux编程之删除文件时排除某个文件
Linux编程之删除文件时排除某个文件
13 0
|
5天前
|
Linux
Linux文件概念和结构
Linux文件概念和结构
9 0
|
5天前
|
Linux Shell 数据安全/隐私保护
Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)(上)
Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)
|
5天前
|
Linux Shell
Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)(下)
Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)
|
5天前
|
SQL Linux
linux(十一)文件和目录相关命令touch和mkdir(2)
3:创建目录的时候,同时指定权限 语法:mkdir -m 755 xxx sql 复制代码 [root@iZuf60ynur81p6k0ysvtneZ opt]# mkdir -m 700 auth [root@iZuf60ynur81p6k0ysvtneZ opt]# ll -a total 24 drwxr-xr-x. 6 root root 4096 Aug 27 10:49 . dr-xr-xr-x. 18 root root 4096 Aug 10 19:00 .. drwx------ 2 root root 4096 Aug 27 10:49 auth -rw-r--r--
11 0
|
5天前
|
SQL Linux C#
linux(十一)文件和目录相关命令touch和mkdir(1)
前边看了ls,cd,pwd这三个纯用来操作目录的命令。 接下来,来看一下文件和目录都有的命令。
15 0
|
5天前
|
Shell Linux 程序员
linux(十二)文件和目录相关命令cp和mv
接下来,我们来看一下linux系统中的移动mv和复制cp命令。 复制粘贴命令的使用频率相对就高很多了。毕竟程序员的键盘磨损最严重的三个按键就是ctrl、c、v键了。开个玩笑。
19 0
|
5天前
|
小程序 Linux 开发工具
【Linux】——使用yum进行软件安装和卸载&&Win和Linux文件交互
在前几篇的文章中我们介绍了Linux下的各种指令、权限等操作。想必大家已经熟悉并且能够快速的上手和应用了吧!那如何在Linux下安装卸载软件呢?这就是我们今天探讨的话题。让我们开始今天的旅程吧!!!
【Linux】——使用yum进行软件安装和卸载&&Win和Linux文件交互
|
5天前
|
Linux Perl
Linux下重命名文件或文件夹
Linux下重命名文件或文件夹
14 0
|
5天前
|
存储 Linux
如何对Linux上的文件进行合并和排序
如何对Linux上的文件进行合并和排序
17 0
热门文章
最新文章
相关产品
云迁移中心
推荐文章
更多