Veco žurnālu failu dzēšanas procesa automatizēšana
Daudzi pakalpojumi un programmas, kas pastāv, rada žurnāla failus kā audita izsekojamību par visu, ko viņi dara, taču dažiem ir funkcija, kas noņem šos failus, kad tie pārsniedz to lietderību. Tā rezultātā šie žurnāla faili sēž jūsu sistēmā, ēdot telpu (dažreiz vairāk nekā jūs zināt) un traucējāt katalogus tiem laikiem, kuriem nepieciešams tiem piekļūt..
Tātad, ja jums nav nepieciešami šie faili, kāpēc tos saglabāt? Mēs parādīsim, kā viegli noņemt šos vecos žurnāla failus, lai jūs būtu ērti un sakārtoti.
Protams, kamēr mēs turpmāk aptveram, ir noderīgi žurnāla failu pārvaldīšanai, jūs varat arī izmantot tos pašus paņēmienus jebkuram citam faila tipam, kas beidzas (piemēram, dublējumkopijas).
Failu noņemšana, pamatojoties uz pēdējo modificēto datumu
Ja vēlaties notīrīt esošos žurnāla failus, pamatojoties tikai uz pēdējo modificēto datumu datumam, viss, kas jums jādara, ir komandas FORFILES izmantošana. Piemēram:
FORFILES / P “C: LogFiles” / S / D -7 / C “CMD / C DEL / F / Q @ PATH”
Iepriekš minētā komanda izdzēsīs visus failus no mapes “C: LogFiles” un visas apakšmapes, kas pagājušajā nedēļā nav mainītas.
Komanda FORFILES ir diezgan elastīga, izmantojot meklēšanas modeli un datuma funkcijas. Piemēram, numura vietā varat ievadīt datumu, piemēram, '-1/13/2010', lai dzēstu failus, kas pēdējo reizi mainīti pirms norādītā datuma.
Lai iegūtu visu informāciju par to, ko var izdarīt FORFILES, skatiet tiešsaistes palīdzību, izmantojot komandu uzvednes komandu:
FORFILES /?
Failu noņemšana, pamatojoties uz datnes rakstu faila nosaukumā
Daudzas lietojumprogrammas un pakalpojumi izveido žurnāla failus, pamatojoties uz datuma rakstu, jo tiem ir viens log fails dienā (t.i., Log100113.txt, Backup-2010-01-13.zip uc). Šāda veida failiem vēlams dzēst, pamatojoties uz datnes datumu, kas iekļauts faila nosaukumā, nevis pēdējo modificēto datumu. Tas ir noderīgi scenārijiem, piemēram, visu log failu saglabāšana pēdējos 3 mēnešos. Diemžēl Windows nav native komandu ar šāda veida loģiku, bet ar partijas skriptu mēs varam viegli izpildīt šo uzdevumu.
Skripta lietošanas komentāros ir iekļauti piemēri, tāpēc tas ir diezgan viegli saprotams.
Scenārijs
@ECHO OFF ECHO Dzēst pēc datuma Pattern ECHO Rakstīja: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Delete / Select failus, pamatojoties uz datumu, kas izmanto MM un / vai DD failu nosaukumu modeļiem. REM REM izmantošana: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Norāda, ka izmantotais modelis ir balstīts uz mēnešiem. REM / D Norāda, kāds modelis ir balstīts uz dienām. REM NumberToKeep REM Saglabājamo mēnešu skaits (/ M) vai dienas (/ D), ieskaitot strāvu. REM Piemēram, ievadot 1, tiek saglabāts tikai pašreizējais mēnesis / diena, bet 6 saglabātu pašreizējo mīnus 5. REM ceļš Saknes atrašanās vieta meklēšanai. Tiek meklēti apakšdirektorijas. REM PatternPrefix REM Failu meklēšanas modelis, kas novietots pirms mēneša / dienas, kad tiek veidota meklēšanas virkne. REM PatternPostfix REM Failu meklēšanas modelis pēc mēneša / dienas, kad tiek veidota meklēšanas virkne. REM / L (pēc izvēles) Uzskaita visus failus, kas atbilst paraugam, bet tos neizdzēš. REM / DEL (pēc izvēles) Dzēš visus failus, kas atbilst paraugam. REM REM Piemēri: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles"? ? log / DEL REM Dzēš visus IIS žurnāla failus (Windows Server 2003), izņemot pašreizējo un iepriekšējos divus mēnešus. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Dzēš visus zip failus no D: Backup mapes, izņemot pašreizējo nedēļu. REM Iepriekšminētais faila nosaukuma modelis ir "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Izdrukā visu C diska failu sarakstu, kas atbilst paraugam: " * -MM- * "(kur MM tiek aizstāts ar 01-12) REM DeleteByDatePattern / D 14" C: žurnāli "Žurnāls - ???? .txt REM Izdrukā sarakstu ar visiem modeļiem, ko apstrādā skripts. SETLOCAL EnableExtensions EnableDelayedExpansion REM Pieņem, ka jūsu Windows datuma / laika iestatījumi ir iestatīti uz formātu “DayOfWeek M / D / YYYY”. REM Ja jūsu formāts ir atšķirīgs, jums būs jāmaina tālāk norādītie mainīgie, lai tie būtu saskaņoti. FOR / F "žetoni = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET mēnesis = %% B SET diena = %% C SET gads = %% D) IF / I % 1 == / M (SET Keep =% mēnesis% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Maks. = 31 REM darba SET / A PrevMonth =% mēnesis% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Leap gadi… pievienot vairāk, ja nepieciešams. IF / I% Gads% EQU 2012 SET max = 29 IF / I% Gads% EQU 2016 SET Maks. = 29) IF / I! PrevMonth! EQU 4 SET Maks. = 30 IF / I! PrevMonth! EQU 6 SET Maks. = 30 IF / I! PrevMonth! EQU 9 SET Maks. / I! PrevMonth! EQU 11 SET Max = 30) SET Current =% Saglabāt% SET / A Keep =% Saglabāt% -% 2 + 1 REM Nosakiet noņemamo diapazonu. SET / A RemoveHighStart =% Current% + 1 IF / I% Saglabāt% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Saglabāt% +% Max% -1) ELSE (SET / A NoņemtLow =% Saglabāt% -1 SET RemoveHighEnd =% Max%) REM process ir mazāks par zemāko diapazonu. FOR / L %% Z IN (1,1,% RemoveLow%) DO CALL: Process %% Z% 3% 4% 5% 6 REM Process ir lielāks par augsto diapazonu. FOR / L %% Z IN (% RemoveHighStart%,%,% RemoveHighEnd%) DO CALL: Process %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Beigas: Process SET Key = 0% 1 SET taustiņš =% Key: ~ -2% SET Target = "% ~ 2% ~ 3% Key %% ~ 4" ECHO mērķa modelis:% Target% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Mērķis% GOTO Beigas: Beigas
Procesa automatizācija
Komanda FORFILES ir dzimtā Windows, tomēr DeleteByDatePattern skripts jāievieto mapē, kas definēta jūsu ceļa mainīgajā (piemēram, Windows mapē), lai to varētu saukt par vietējo komandu. Kad tas ir paveikts, varat izveidot ieplānotu uzdevumu, kas ir vai nu viena komanda (ja jums tikai jāizdzēš no vienas vietas), vai partijas fails (ja nepieciešams izdzēst no vairākām atrašanās vietām), kas darbojas katru dienu, reizi nedēļā, mēnesī vai kad vien.
Vēl viena lieta, ko varat iestatīt un aizmirst.
Saites
Lejupielādēt dzēšanas datuma rakstu skriptu no Sysadmin Geek