Linux下日誌檔案過大解決方案
很多Linux伺服器裡的應用程式都是無間斷的輸出日誌,這對於伺服器的硬碟是一個很大的考驗。良許之前也分享過一篇文章,介紹如何讓應用程式在後臺執行:
linux後臺執行命令:&與nohup的用法
通過以上方法,應用程式的日誌會一直輸出到日誌檔案myout.txt裡,這個檔案也會不斷的增大,一直蠶食伺服器硬碟。
但是,我們都知道,日誌對於我們而言是非常重要的,一量應用程式出現bug,或者伺服器當機,我們必須通過日誌檔案來進行debug或進一步分析。所以,日誌檔案不能簡單的一刪了之。
這時,我們想到,如果能將日誌檔案切分該多好,這樣我們可以留下重要的日誌,而刪掉不必要的日誌。下面良許就來詳細介紹這種方法。
我們可以每天都進行切分日誌的操作,那要這樣的話,為了避免混淆,我們切分出來的日誌都應該帶上日期。當然日期我們可以通過以下語句獲取:
current_date=`date -d "-1 day" "+%Y%m%d"`
date -d “-1 day”表示獲取前一天的日期,就是說我們今天操作的話是切割昨天的日誌。+%Y%m%d是具體的日期格式,也就是年月日格式,比如:20181005。
接下來,我們再切割日誌。
split -b 65535000 -d -a 4 myout.txt ./log/log_${current_date}_
其中,65535000是60M,也就是日誌檔案按60M大小進行切割,可自定義大小。-d -a 4表示檔案字尾是4位。我們將檔案切割後要按次序進行編號,比如0000,0001,0002……這個4就代表編號的位數。
再之後的./log/log_${current_date}_就是切割後日志檔案的字首,裡面就帶入了當前日期。所以,最終的輸出格式類似於:log_20181005_0001。
日誌檔案切割完之後,就可以將日誌檔案刪除了,否則就失去切割檔案的意義了。刪除的方法可以用以下方式:
cat /dev/null > nohup.out
將以上這些命令寫在一個指令碼里,每天執行它,就可以將日誌檔案切割成若干分,便於我們排查。完整的程式碼如下:
#!/bin/bash
current_date=`date -d "-1 day" "+%Y%m%d"`
split -b 65535000 -d -a 4 /home/alvin/myout.txt /home/alvin/log/log_${current_date}_
cat /dev/null > nohup.out
原文釋出時間為:2018-10-18
本文作者:良許
本文來自雲棲社群合作伙伴“良許Linux”,瞭解相關資訊可以關注“良許Linux”。
相關文章
- apche-tomcat日誌過大解決方案。Tomcat
- 日誌檔案過大清理
- linux的日誌檔案Linux
- window下刪除過舊的日誌檔案指令碼(如jboss的日誌檔案 資料庫的trace檔案)指令碼資料庫
- MongoDB日誌檔案過大的解決方法(不停機)MongoDB
- linux日誌檔案說明Linux
- 歸檔模式下的日誌檔案丟失的解決方法模式
- Linux 使用 crontab 定時拆分日誌、清理過期檔案Linux
- 【Oracle日誌】- 日誌檔案重建Oracle
- 日誌檔案
- 日誌檔案和歸檔日誌檔案的關係以及如何切換日誌
- 透過alert日誌重建引數檔案
- linux下日誌檔案error監控報警指令碼分享LinuxError指令碼
- Linux 日誌檔案系統如何工作Linux
- linux檔案系統和日誌分析Linux
- Linux檔案系統與日誌分析Linux
- 刪除日誌檔案組與日誌檔案成員
- 管理日誌檔案
- dump日誌檔案
- APACHE日誌檔案Apache
- Nginx日誌分析解決方案Nginx
- Linux下玩轉nginx系列(三)---nginx日誌配置檔案說明LinuxNginx
- Linux 下高階日誌檔案檢視器Log File NavigatorLinux
- 控制檔案/歸檔日誌
- 非歸檔模式下,丟失日誌檔案的一次恢復過程模式
- sqlserver 事務日誌過大 收縮方法解決方案SQLServer
- 增加日誌檔案,修改當前日誌檔案大小
- Linux/Unix shell 指令碼清除歸檔日誌檔案Linux指令碼
- Linux--檔案系統與日誌分析Linux
- Linux中常見的日誌檔案和命令Linux
- Linux中監視日誌檔案常用的命令!Linux
- 在Linux中,有一堆日誌檔案,如何刪除7天前的日誌檔案?Linux
- linux 下解決 chm (windows help檔案)方案,接近完美(轉)LinuxWindows
- 聯機日誌檔案丟失解決方法
- 【redo】日誌檔案的丟失解決方法
- Linux中log檔案是什麼意思?Linux日誌檔案說明Linux
- 對日誌檔案組和日誌檔案組成員的管理
- Oracle 11g Dataguard環境下資料檔案、日誌檔案管理(下)Oracle