Linux自動刪除伺服器日誌

2021-08-09 18:20:30 字數 1756 閱讀 4065

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

去執行吧。

1.刪除檔案命令:

find 對應目錄 -mtime +天數 -name "檔名" -exec rm -rf {} \;

例項命令:

find /opt/

soft

/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

說明:將/opt/

soft

/log/目錄下所有30天前帶".log"的檔案刪除

。具體引數說明如下:

find:linux的查詢命令,使用者查詢指定條件的檔案;

/opt/

soft

/log/:想要進行清理的任意目錄;

-mtime:標準語句寫法;

+30:查詢30天前的檔案,這裡用數字代表天數;

"*.log

":希望查詢的資料型別,"*.jpg"表示查詢擴充套件名為jpg的所有檔案,"*"表示查詢所有檔案,這個可以靈活運用,舉一反三;

-exec:固定寫法;

rm -rf:強制刪除檔案,包括目錄;

{} \; :固定寫法,一對大括號+空格+\+;

2.計畫任務:

若嫌每次手動執行語句太麻煩,可以將這小語句寫到乙個可執行

shell指令碼

檔案中,再設定cron排程執行,那就可以讓系統自動去清理相關檔案。

2.1建立shell:

touch /opt/

soft

/bin/auto-del-30-days-ago-log.sh

chmod +x auto-del-30-days-ago-log.sh

新建乙個可執行檔案auto-del-30-days-ago-log.sh

,並分配可執行許可權

2.2編輯shell指令碼:

vi auto-del-30-days-ago-log.sh

編輯auto-del-30-days-ago-log.sh檔案如下:

#!/bin/sh

find /opt/

soft

/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;

ok,儲存退出(:wq)。

2.3計畫任務:

#crontab -e

將auto-del-30-days-ago-log.sh執行指令碼加入到系統計畫任務,到點自動執行

輸入:10 0 * * * /opt/

soft

/log/auto-del-30-days-ago-log.sh >/dev/null 2>&1

這裡的設定是每天凌晨0點10分執行auto-del-30-days-ago-log.sh檔案進行資料清理任務了。

完成以上三步,你就再也不每天惦記是否硬碟空間滿了,該清理日誌檔案了,再也不會受到伺服器硬碟空間不足的報警資訊了,放心的去看書喝咖啡去吧!

linux伺服器自動切割並清理日誌

由於nginx的日誌會不停地增大,所以需要我們自己去切割日誌,方便管理,需要達到以下的效果 1.按日期自動切割日誌,最小單位是天。2.當日誌總量超過一定量時,自動直接清理日誌,限定總量不能超過1gb。3.寫入crontab定時任務裡。分析 1.nginx日誌目錄下分別有access.log和erro...

linux伺服器日誌切割

現在網上比較成熟的有logrotate和cronolog兩種工具,也有很多實現,我們這裡不使用這兩種,所以不多贅述,只講講使用最基本的linux切割日誌的方法。因為每天產生的日誌都會輸出到catalina.out這個檔案中,我們可以在每天晚上凌晨的時候把catalina.out這個檔案複製乙份,檔名...

Linux伺服器nginx日誌切割

由於nginx的日誌本身只是支援按照server name或者大小進行劃分,對於習慣了apache的按照乙個 每天乙個日誌的我來說是不可以接受的,所以就實現了按天切割的功能,這篇文章主要介紹了關於nginx日誌按日期切割的相關資料,需要的朋友可以參考下。本文實現的功能是在嗎每天凌晨00 00把前一天...