無論是在windows下還是linux下,很多的日志文件如果不定時(shí)刪除會(huì)充滿硬盤,所以可以分別寫個(gè)腳本定時(shí)處理一下,下面我來給大家介紹Linux與Windows中定時(shí)刪除某天前日志文件腳本,但是做定時(shí)任務(wù)執(zhí)行這個(gè)腳本,亮總系統(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ù)為負(fù)數(shù)表示多少天之前的,正數(shù)是多少天之后的
最后保存成bat文件,然后在Windows計(jì)劃任務(wù)里面設(shè)置每天執(zhí)行的時(shí)間就可以了。
二、Linux下面的shell文件內(nèi)容如下:
1、代碼如下:
#!/bin/bash
# 刪除30天之前的r日志文件
find /varlog/nginx/ -mtime +30 -type f -name \*.log | xargs rm -f
同樣的將上面的目錄換成自己指定的目錄,后面的*.log表示文件擴(kuò)展名,
-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/:想要進(jìn)行清理的任意目錄;
-mtime:標(biāo)準(zhǔn)語句寫法;
+30:查找30天前的文件,這里用數(shù)字代表天數(shù);
".log":希望查找的數(shù)據(jù)類型,".jpg"表示查找擴(kuò)展名為jpg的所有文件,"*"表示查找所有文件,這個(gè)可以靈活運(yùn)用,舉一反三;
-exec:固定寫法;
rm -rf:強(qiáng)制刪除文件,包括目錄;
{} ; :固定寫法,一對(duì)大括號(hào)+空格++;
3、保存指定后綴,添加權(quán)限,設(shè)置定時(shí)任務(wù)
將上面的內(nèi)容保存成.sh,兩個(gè)效果都是一樣,任選其一,并使用chmod +x 添加可執(zhí)行權(quán)限,然后放到crond定時(shí)任務(wù)中去執(zhí)行即可。