無論是在windows下還是linux下逗余,很多的日志文件如果不定時刪除會充滿硬盤特咆,所以可以分別寫個腳本定時處理一下,下面我來給大家介紹Linux與Windows中定時刪除某天前日志文件腳本录粱,但是做定時任務(wù)執(zhí)行這個腳本,亮總系統(tǒng)中都很簡單画拾,自己百度即可找到啥繁。
一、Windows下bat文件內(nèi)容如下青抛;
1旗闽、代碼如下:
@echo off
forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path"
forfiles -p "D:\servers\mysql\logs" -s -m *.log -d -15 -c "cmd /c del @path"
可以將上面的目錄換成你想刪除的指定的目錄
*.log可以篩選一下文件格式
-d后面的參數(shù)為負數(shù)表示多少天之前的,正數(shù)是多少天之后的
最后保存成bat文件蜜另,然后在Windows計劃任務(wù)里面設(shè)置每天執(zhí)行的時間就可以了适室。
二、Linux下面的shell文件內(nèi)容如下:
1举瑰、代碼如下:
#!/bin/bash
# 刪除30天之前的r日志文件
find /varlog/nginx/ -mtime +30 -type f -name \*.log | xargs rm -f
同樣的將上面的目錄換成自己指定的目錄捣辆,后面的*.log表示文件擴展名,
-mtime后面的參數(shù)與上面Windows的相反此迅,正數(shù)表示多少天之前的文件汽畴。
2、代碼如下:
#!/bin/bash
# 刪除30天之前的r日志文件
find /var/log/nginx/ -mtime +30 -name "*log*" -exec rm -f {} \;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除耸序。具體參數(shù)說明如下:
find:linux的查找命令忍些,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄坎怪;
-mtime:標準語句寫法罢坝;
+30:查找30天前的文件,這里用數(shù)字代表天數(shù)搅窿;
".log":希望查找的數(shù)據(jù)類型嘁酿,".jpg"表示查找擴展名為jpg的所有文件隙券,"*"表示查找所有文件,這個可以靈活運用痹仙,舉一反三是尔;
-exec:固定寫法;
rm -rf:強制刪除文件开仰,包括目錄拟枚;
{} ; :固定寫法,一對大括號+空格++;
3众弓、保存指定后綴恩溅,添加權(quán)限,設(shè)置定時任務(wù)
將上面的內(nèi)容保存成.sh谓娃,兩個效果都是一樣脚乡,任選其一,并使用chmod +x 添加可執(zhí)行權(quán)限滨达,然后放到crond定時任務(wù)中去執(zhí)行即可奶稠。