很多Linux服務(wù)器里的應(yīng)用程序都是無(wú)間斷的輸出日志,這對(duì)于服務(wù)器的硬盤是一個(gè)很大的考驗(yàn)。良許之前也分享過(guò)一篇文章,介紹如何讓應(yīng)用程序在后臺(tái)執(zhí)行:
linux后臺(tái)執(zhí)行命令:&與nohup的用法
通過(guò)以上方法,應(yīng)用程序的日志會(huì)一直輸出到日志文件myout.txt里,這個(gè)文件也會(huì)不斷的增大,一直蠶食服務(wù)器硬盤。
但是,我們都知道,日志對(duì)于我們而言是非常重要的,一量應(yīng)用程序出現(xiàn)bug,或者服務(wù)器宕機(jī),我們必須通過(guò)日志文件來(lái)進(jìn)行debug或進(jìn)一步分析。所以,日志文件不能簡(jiǎn)單的一刪了之。
這時(shí),我們想到,如果能將日志文件切分該多好,這樣我們可以留下重要的日志,而刪掉不必要的日志。下面良許就來(lái)詳細(xì)介紹這種方法。
我們可以每天都進(jìn)行切分日志的操作,那要這樣的話,為了避免混淆,我們切分出來(lái)的日志都應(yīng)該帶上日期。當(dāng)然日期我們可以通過(guò)以下語(yǔ)句獲取:
current_date=`date -d “-1 day” “+%Y%m%d”`
date -d “-1 day”表示獲取前一天的日期,就是說(shuō)我們今天操作的話是切割昨天的日志。+%Y%m%d是具體的日期格式,也就是年月日格式,比如:20181005。
接下來(lái),我們?cè)偾懈钊罩尽?/p>
split -b 65535000 -d -a 4 myout.txt 。/log/log_${current_date}_
其中,65535000是60M,也就是日志文件按60M大小進(jìn)行切割,可自定義大小。-d -a 4表示文件后綴是4位。我們將文件切割后要按次序進(jìn)行編號(hào),比如0000,0001,0002……這個(gè)4就代表編號(hào)的位數(shù)。
再之后的。/log/log${current_date}就是切割后日志文件的前綴,里面就帶入了當(dāng)前日期。所以,最終的輸出格式類似于:log_20181005_0001。
日志文件切割完之后,就可以將日志文件刪除了,否則就失去切割文件的意義了。刪除的方法可以用以下方式:
cat /dev/null 》 nohup.out
將以上這些命令寫在一個(gè)腳本里,每天運(yùn)行它,就可以將日志文件切割成若干分,便于我們排查。完整的代碼如下:
責(zé)編AJX
-
硬盤
+關(guān)注
關(guān)注
3文章
1332瀏覽量
57993 -
Linux
+關(guān)注
關(guān)注
87文章
11419瀏覽量
212274 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9588瀏覽量
86947
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
內(nèi)存故障及解決方法
關(guān)于linux系統(tǒng)的日志文件的學(xué)習(xí)與理解
linux的內(nèi)存釋放操作
Linux文件系統(tǒng)的反刪除方法
WinCE文件目錄定制及內(nèi)存調(diào)整的操作方法
Linux日志文件系統(tǒng)解析

linux系統(tǒng)日志在哪里

Oracle核心技術(shù)之控制文件和日志文件
在Linux環(huán)境下如何使用XFS文件系統(tǒng)
你了解過(guò)Linux日志文件系統(tǒng)?

Linux系統(tǒng)日志文件中的JFS文件系統(tǒng)

RAM內(nèi)存不足的表現(xiàn)及解決方法
Linux實(shí)時(shí)查看日志的四種命令詳解

評(píng)論