定時清理檔案shell指令碼

2021-08-18 15:37:07 字數 1390 閱讀 5200

乙個測試機上部署多個應用,總是經常出現磁碟空間已滿,不能部署應用的情況,所以寫了個小指令碼,用於定時清理日誌,避免出現這種情況。

1、如果是清理固定路徑下的檔案,可以直接用命令方式。       

命令方式

(1)編寫命令:

find /*/logs -name 'catalina.out*.log' -and  -mtime +7

測試方法:把路徑中的*變為具體的路徑,在linux命令視窗中執行,除錯結果(-mtime +7為刪除最後修改時間在7天以前的檔案,可自己配置)

(2)在linux上配置定時任務:

說明:因為我們使用的是系統的crontab檔案,系統的crontab檔案路徑為:/etc/crontab

編輯crontab檔案:(3)檢驗定時任務是否執行:

命令: tail /var/spool/mail/root

(4)若定時任務沒有執行,輸入命令   service crond status,確保crond狀態為 is  running

2、但是有時候需要同時清理多個路徑下的指定檔案,這時,我們最好就寫個shell指令碼了,下面是shell指令碼的實現方式

shell指令碼方式:

(1)vi /*/deletelog.sh(指令碼路徑可變,保證在path變數中就可以)

指令碼:#!/bin/bash

workdir=("/export/domains" "/home/admin")#可填寫多個路徑

for wdir in $

do

echo  filepath is $wdir

if [ $wdir =  $ ] ;then

filestr=`find  $wdir/*/logs -type d`

echo files is $filestr

else

filestr=`find  $wdir -type d`

echo filee is $filestr

fifor dir in $filestr

doecho file name is $dir        

find $dir -name '*log*' -and -mtime +7  -type f | xargs rm

if [ $? -eq 0 ];then

echo $date delete $dir success!            

else

echo $date delete $dir faild!           

fidone

done

(2)賦給deletelog.sh 檔案執行許可權

命令:chmod 700    /*/logs/deletelog.sh

(3)編輯crontab檔案:

定時清理檔案shell指令碼

乙個測試機上部署多個應用,總是經常出現磁碟空間已滿,不能部署應用的情況,所以寫了個小指令碼,用於定時清理日誌,避免出現這種情況。1 如果是清理固定路徑下的檔案,可以直接用命令方式。命令方式 1 編寫命令 find logs name catalina.out log and mtime 7 測試方法...

定時清理日誌的shell指令碼

因為公司springcloud專案各個server的日誌堆積日益增多佔據伺服器記憶體,故提出了定時清理7天之外的日誌需求。場景 日誌目錄結構 logs server name date date 1.log 789 刪除子目錄下的過期log日誌 10removelogs 1415 year 16 m...

定時清理日誌檔案的指令碼

usr bin python coding utf 8 import os import os.path,time,datetime logdir opt 日誌檔案所在的路徑 for parent,dirname,filenames in os.walk ogdir for filename in ...