天天看点

linux如何备份系统日志?,一种减小备份Linux系统日志大小的方法与流程

本发明涉及的是Linux系统日志备份领域,尤其是一种减小备份Linux系统日志大小的方法。

背景技术:

Linux操作系统在长时间运行应用程序时,一般会产生大量日志,系统日志一般存储在/var/log/message文件,每次查看该文件和该文件的相关压缩文件,会发现该文件占用很大空间,这是现有技术所存在的不足之处。

技术实现要素:

本发明的目的就是针对现有技术所存在的不足,而提供一种减小备份Linux系统日志大小的方法,该方法使linux日志的大小大幅度减小,从而使linux日志备份时,备份文件占用空间减少,使等量的磁盘空间可以存储更多的日志或其他文件,另一方面提高了磁盘的可使用率。

本方案是通过如下技术措施来实现的: 一种减小备份Linux系统日志大小的方法,其特征是包括如下步骤:1)对日志字段里的服务器名字段进行去冗,用代号代替;2)对日志内容进行去冗,用代号代替。两者去冗,减少了占用的硬盘空间。

在对日志字段和日志内容进行处理时,首先要实时查看系统日志的最新内容,并实时保存到一个新文件,然后对新文件里面存放的日志的字段和内同进行处理。这样先在新文件里面处理后,再备份,便于备份的进行。所述的新文件为log.bak文件。

在步骤2)中,新文件的日志内容进行去冗,用代号代替如,重复次数达到2次以上的,即进行去重处理,包括连续几行和单行重复。在进行去重处理时,如果日志内容出现了1次,第一次出现计入特殊库,如第二次出现,则把新出现的日志内容与原日志内容进行对比,将新日志内容拆分成两部分,与原日志内容不相同内容,原日志内容完全相同内容,不相同内容进入特殊库里,完全相同内容部分被选择进入备份库。如果只有两个日志重复,则特殊库里和常用备份库里实际记录字符数减少了将近一半,如果日志出现重复将近三次,四次,n次,则字符数实际减少到了1/n。常用备份库和特殊库可以是文本文档。备份时,对常用备份库和特殊库进行备份。

常用备份库由两个字段构成,key值字段和value字段,其中的value字段对应特殊库中的日志内容。所日志字段里的服务名字段进行去冗,用代号代替,代号为key值,并把对应的key:value方式存储在服务库。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

具体实施方式

为能清楚说明本方案的技术特点,下面通过一个具体实施方式,对本方案进行阐述。

本方案的减小备份Linux系统日志大小的方法,

1)实时查看系统日志的最新内容,并实时保存到一个新文件,

Mkdir /tmp/log

Touch log.bak

Tail –f /var/log/messages >>log.bak

2)对log.bak文件里的日志进行处理,日志字段里的服务名字段进行去冗,用代号代替;

如smbd可以添加到常用备份库,使用key值S代替,并把对应的key:value方式存储在服务库S:smbd,保证key值占用的字符最少,而且唯一,key值的产生可以从序列表里产生A1,A2…,B1,B2,B3…。

3)对新文件的日志内容进行去冗,用代号代替如,重复次数达到2次以上的,即可进行去重处理,包括连续几行和单行重复;

如[2018/06/15 11:31:34.394743,0] smbd/process.c:244(read_packet_remainder)

read_fd_with_timeout failed for client 10.166.15.220 read error = NT_STATUS_,出现了1次,第一次出现计入特殊库,如第二次出现,类似,类似匹配度超过60%,则把内容拆分成两部分,不相同内容,完全相同内容,不相同内容不能进入常用备份库,仍旧在特殊库里,完全相同内容部分被选择进入备份库,并用key值和value值进行映射,如以下日志

[2018/06/15 11:31:34.394743,0] smbd/process.c:244(read_packet_remainder)

read_fd_with_timeout failed for client 10.166.15.220 read error = NT_STATUS_

[2018/06/15 11:31:34.395295,0] smbd/process.c:244(read_packet_remainder)

read_fd_with_timeout failed for client 10.166.15.220 read error = NT_STATUS_

可以分为不相同部分[2018/06/15 11:31:34.394743和[2018/06/15 11:31:34.395295,和相同部分,

0] smbd/process.c:244(read_packet_remainder)

read_fd_with_timeout failed for client 10.166.15.220 read error = NT_STATUS_,

则记录为特殊库里的

[2018/06/15 11:31:34.394743, $A1(从特殊库里映射过来)

[2018/06/15 11:31:34.395295, $A1(从特殊库里映射过来)

通过上面比较,特殊库里和常用备份库里实际记录字符数减少了将近一半,如果以上日志出现将近三次,四次,n次,则字符数实际减少到了1/n。

4)对以上两个字段的内容进行处理后,其他字段也可类似处理。

5)经过以上步骤,只需要对常用备份库和特殊库进行备份,即可说明:常用备份库和特殊库可以是文本文档,常用备份库由两个字段构成,key值字段,value字段,特殊库,基本上和log.bak日志格式相同。

本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。