Linux定時刪除日誌的簡單實現方法

2022-09-26 14:21:12 字數 1062 閱讀 2106

導語

linux是乙個很能自動產生檔案的系統,日誌、郵件、備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。

專案中會生成各種各樣的日誌,隨著時間的推移,日誌也是越來越多。超過一定時間的日誌就沒有了參考的價值,也會占用空間,所以一般的專案都會刪除日誌。本篇文章的需求是刪除 7 天之前的日誌,大致分為兩步,一是刪除日誌的命令,二是設定定時任務。

刪除指定時間的日誌

首先是查詢所有 7 天前的日誌,使用 find 查詢的時候加上 -mtime 引數,其含義為 查詢在指定時間曾被更改過的檔案或目錄,單位以24小時計算。例項為find you/path -mtime +7 -name '*.log',如下

查詢完成了,接下來是刪除。在上面語句的基礎上,加上 -exec 引數可以實現刪除,引數含義為 假設find指令的回傳值為true,就執行該指令。所以完整的語句為find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;。實際執行下,刪除 16 天之前的日誌,不然下面沒辦法演示了

16 天之前只有一條日誌,執行後再程式設計客棧次查詢不存在,說明刪除成功。

設定定時任務

最後將命令新增定時任務。關於 crontab 命令以及執行時間的設定,可以檢視下方的參考資料。

新增之前先來看下 14 天之前的日誌

有一條日誌。編輯定時任務,執行 crontab -e 將刪除日誌命令追加到末尾*/1 * * * * find you/path -mtime +14 -name '*.log' -exec rm -rf {} \;,設定為每分鐘執行一次。稍等一分鐘,再來檢視 14 天之前的日誌程式設計客棧

可以看到在新增定時任務之後,沒有手動刪除,日誌已經被自動刪除了。當然不需要每分鐘來執行一次,將時間設定為每天 1 點的時間,最終定時任務以及刪除日誌命令如下

0 1 * * * find you/path -mtime +7 -name '*.log' -exec rm -rf {} \;

總結本文標題: linux定時刪除日誌的簡單實現方法

本文位址: /os/linux/256490.html

linux日誌定時刪除

伺服器儲存占用過大可從兩個方面進行排查原因 一,系統生成日誌占用過大 二,廢棄的服務沒有被kill也有所影響 下面是刪除日誌的步驟整理 1,查詢超大檔案 可使用命令查詢 find type f size 800m print0 xargs 0 du hm sort nr 通過該命令可以找到大檔案 也...

定時刪除日誌檔案 linux定時清理日誌

linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。不用你去每天惦記著是否需要清理日誌,不用每天收到硬碟空間不足的報警簡訊,想好好休息的話,讓我們把這個事情交給機器定時去執行吧。1.刪除...

定時刪除日誌檔案 linux定時清理日誌

linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。雖然現在硬碟廉價,我們可以有很多硬碟空間供這些檔案浪費,讓系統定時清理一些不需要的檔案很有一種爽快的事情。不用你去每天惦記著是否需要清理日誌,不用每天收到硬碟空間不足的報警簡訊,想好好休息的話,讓我們把這個事情交給機器定時去執行吧。1.刪除...