由於我的公司遊戲(露娜luna)伺服器太多,之前建立的每日備份日誌檔案日積月累會
很大。而且不需要保留那麼多,按公司要求只需要保留乙個星期的即可。
1.那麼有什麼方法自動刪除7天以前備份的*.log檔案呢?
2.伺服器過多,不可能一一手動建立,有沒有自動完成這個建立計畫任務的批處理呢?
首先要解決的是自動刪除7天以前備份的log檔案,然後建立乙個可以自動建立乙個每
周指定日期指定時間執行一次該自動刪除的批處理
一:刪除7天以前備份的檔案命令
forfiles [/p pathname] [/m searchmask] [/s]
[/c command] [/d [+ | -] ]
方法1:
描述:可以刪除7天以前的字尾名為log的日誌檔案。如今天是6.29,那麼會刪除6.22
號以前建立的檔案。不會刪除到**站。
指定路徑為要刪除的資料夾路徑,該批處理可以放在任意資料夾下。
forfiles /p d:\aizzw\log /m *.log -d -7 /c "cmd /c del /f @path"
引數解釋:
這裡的/p 指的是要刪除的備份檔案路徑
/m 指的是要匹配的字元,
萬用字元為*號,字尾名可以根據實際情況修改。
如zzw*.log;*.bak;*.txt
-d 指的是日期,「-d -7」指的是從但前日期當前日期往前減7天。方法2/c 指的是執行命令
@path 返回檔案完整路徑
:描述:可以刪除7天以前的字尾名為log的日誌檔案。
不需要指定路徑,必須放在要刪除日誌的檔案下。刪除當前資料夾下的匹配檔案。
forfiles /m *.log -d -7 /c "cmd /c del /f @path"
以上批處理已經在windows 2003的虛擬機器上測試通過
方法3:
為網友提供,可適用於xp,2000,而forfiles預設只有2003以上的系統才有。
::刪除f:\檔案備份裡的 7天前的txt檔案
::被刪除的檔案日期以檔案建立日期為主
@echo off
::取7天之前的日期.
>deldata_zw.zhu.vbs echo wscript.echo dateadd("d",-7,date)
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% lss 10 set m=0%m%
if %d% lss 10 set d=0%d%
set rq=%y%-%m%-%d%
echo 注意:即將刪除 %rq% 以前建立的檔案
pause
::判斷檔案
for /f "skip=4 delims=" %%i in ('dir/tc f:\test\*.log') do call :w "%%i"
del deldata_zw.zhu.vbs
goto :eof
:w
for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
set var=%1
set num=%var:~1,10%
if %num% lss %rq% del /q f:\test\%str%
二:自動建立每週執行一次的計畫任務建立計畫任務可用at,schtasks命令,schtasks提供了很多引數
命令schtasks
schtasks /create [/s system [/u username [/p [password]]]]
[/ru username [/rp password]] /sc schedule [/mo modifier] [/d day]
[/m months] [/i idletime] /tn taskname /tr taskrun [/st starttime]
[/ri interval] [ [/k] ]
[/sd startdate] [/ed enddate] [/it] [/z] [/f]方法:
@echo off
schtasks /create /tn "del-7_log" /ru system /tr d:\aizzw\del-7.bat /sc
weekly /d mon /st 01:00
start %systemroot%\tasks
echo 建立成功,請檢查...
pause
del /f create.bat
引數解釋:
schtasks /create 指的是建立計畫任務
/tn 指定計畫任務的名稱
/ru 指定執行該批處理的賬號,如果去掉該引數則預設為當前賬戶執行,會提示輸入密碼。
乙個計畫任務所用的賬號如果密碼變動後該批處理就不再會執行成功/rp 指定賬號的密碼所以我這裡使用系統賬號system,密碼就省略不寫。
/tr 指定程式所在路徑,這裡為指定要執行的批處理存放路徑。
/sc 為指定執行的週期
/d 為日期.這裡mon為英文單詞縮寫,周一
/st 為執行時間
start %systemroot%\tasks 這一句只是為了彈出計畫任務視窗檢視建立成功與否
del /f create.bat 為建立完成後自動刪除建立該計畫任務的批處理
schtasks命令詳細解釋可以參見微軟的
附件中有我實際操作的批處理供
自動建立計畫任務 刪除
forfiles p pathname m searchmask s c command d 描述 選擇乙個檔案 或一組檔案 並在那個檔案上 執行乙個命令。這有助於批處理作業。引數列表 p pathname 表示開始搜尋的路徑。預設資料夾是當前工作的 目錄 m searchmask 根據搜尋掩碼搜尋...
建立計畫任務
一次性的計畫任務at service atd status 啟動atd 如果沒有則需要先安裝,再啟動 並設為開機自動啟動 chkconfig atd start 建立任務 at 10 30 at 10 30 2017 8 9 wall hello world touch date.txt 按ctrl...
建立windows計畫任務
這幾天玩windows計畫任務,有點感受。一開始覺得不大好用,因為建立乙個windows總是讓輸入賬戶和密碼 如果是使用者的機器,我去哪弄密碼去 不爽!後來發現搜狗的計畫任務就可以執行,仔細看了下,搜狗建立的計畫任務的賬戶型別是nt authority system的,而我的是建立administr...