天天看點

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日志格式相同。

本發明并不僅限于上述具體實施方式,本領域普通技術人員在本發明的實質範圍内做出的變化、改型、添加或替換,也應屬于本發明的保護範圍。