具體場景:伺服器產生的日誌量非常大,每天將近100m+的日誌量,所以博主寫了乙個日誌的分隔指令碼;每隔2小時執行一次,當日誌檔案超過6m時,將日誌進行轉存,命名格式為20180917-12.log,這樣可以防止單個日誌檔案過大,開啟時非常耗cpu,【曾經測試在linux上開啟1g的純文字檔案,2g記憶體 雙核虛擬機器幾乎崩潰,cpu瞬間飈滿;在windows下更打不開】所以將日誌進行切割轉存,但由於日誌量太大,所以要進行定期清除日誌,規則:當所有日誌檔案超過3g時,刪除掉日期最早的日誌檔案,這樣可以保證硬碟空間的相對穩定,也保留最近期的日誌檔案。具體實現指令碼如下:
#!/bin/bash#log.sh
#獲取所有日誌檔案的總大小,單位m[此處假設,所有日誌存在/mnt/log路徑下]
size_all=`du -s -m /mnt/log/ | awk ''`
date=88888888
#當/mnt的總容量大於200m時,刪除最早建立的日誌檔案
if [[ $size_all -gt 3000]]; then
for i in `ls /mnt/log/`; do
date_i=`echo $i | cut -d '-' -f 1`
#通過迴圈獲取最小日期的日誌檔案
linux 定期清除日誌
clearlog.sh bin sh find usr local apache logs mtime 30 name log exec rm 說明 find linux查詢命令,使用者查詢指定條件的檔案 usr local apache logs 需要進行清理的目標目錄 mtime 標準語句寫法 ...
Linux下Tomcat日誌定期清理
size large 在tomcat目錄下的logs目錄下有乙個catalina.out檔案,這個檔案是無限增長的,所以要定期清理這個日誌檔案。最簡單的命令 color red dev null tomcat home logs catalina.out color 要定期清理就需要通過指令碼實現了...
Linux環境下定期清理歸檔日誌
name type value db recovery file dest string data oracle flash recovery area db recovery file dest size big integer 70g recovery parallelism integer 0...