Mnoge usluge i programi vani stvaraju zapisničke datoteke kao revizijski trag za sve što rade, no malo njih ima funkciju koja uklanja te datoteke dok oni nadživjuju njihovu korisnost. Kao rezultat toga, ove datoteke loga sjednu na vašem sustavu kako jedu prostor (ponekad više nego što znate) i neredovite imenike za one vremenima kojima trebate pristupiti.
Dakle, ako vam ove datoteke ne trebate, zašto ih zadržati? Pokazat ćemo vam kako lako ukloniti te stare datoteke zapisnika kako bi sustav bio lijep i uredan.
Naravno, dok smo pokrivajući u nastavku odmah su korisni za upravljanje log datotekama, također možete primijeniti iste tehnike na bilo koju drugu vrstu "istječe" datoteke (kao što su sigurnosne kopije).
Ako želite izbrisati postojeće datoteke zapisnika temeljem isključivo posljednjeg izmijenjenog datuma datoteke, sve što trebate učiniti je koristiti naredbu FORFILES. Na primjer:
FORFILES / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / QPATH"
Gornja naredba izbrisat će sve datoteke iz mape "C: LogFiles" i sve podmape koje nisu izmijenjene u posljednjem tjednu.
Naredba FORFILES prilično je fleksibilna s uzorkom pretraživanja i datumskim funkcijama. Na primjer, umjesto broja, možete unijeti datum kao što je "-1/13/2010" da biste izbrisali datoteke zadnje izmijenjene prije navedenog datuma.
Da biste dobili sve detalje o tome što FORFILES može učiniti, pregledajte on-line pomoć pomoću sljedeće naredbe iz naredbenog retka:
FORFILES /?
Mnoge aplikacije i usluge proizvode dnevničke datoteke na temelju datumskog uzorka kako bi imale dnevnu datoteku (tj. Log100113.txt, Backup-2010-01-13.zip itd.). Za te vrste datoteka preporučljivo je izbrisati na temelju datuma datoteke uključene u naziv datoteke, a ne na posljednji izmijenjeni datum. To je korisno za scenarije kao što su vođenje svih dnevnika tijekom posljednja 3 mjeseca. Nažalost, Windows nema prirodnu naredbu s ovom vrstom logike, ali s skriptnom serijom lako možemo obraditi taj zadatak.
Postoje primjeri uključeni u komentare o korištenju skripte, pa bi trebalo biti prilično lako shvatiti.
@ ECO OFF ECHO Brisanje po datumu ugleda ECHO Napisao: Jason Faulkner ECHO SysadminGeek.com ECHO. JEKA. REM Delete / Select datoteka na temelju datuma koji koristi MM i / ili DD za uzorke za imenovanje datoteka. REM REM Upotreba: REM DeleteByDatePattern / M | / D NumberToKeep Put PatternPrefix PatternPostfix [/ L | / DEL] REM / M Određuje uzorak koji se koristi na temelju mjeseca. REM / D Određuje uzorak koji se koristi na temelju dana. REM NumberToKeep REM Broj mjeseci (/ M) ili dana (/ D) za zadržavanje, uključujući i trenutnu. REM Na primjer, unos 1 zadržava tek tekući mjesec / dan, a 6 zadržava trenutni minus 5. REM Path Korijenska lokacija za pretraživanje. Pretraživat će se poddirektorije. REM PatternPrefix REM Obrazac za pretraživanje datoteka postavljen je prije mjeseca / dana kada je zgrada traži. REM PatternPostfix REM Obrazac za pretraživanje datoteka postavljen nakon mjeseca / dana kada se gradi traži naredba. REM / L (opcija) Navodi sve datoteke koje odgovaraju obrascu, ali ih ne briše. REM / DEL (opcija) Briše sve datoteke koje odgovaraju obrascu. REM REM Primjeri: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex? log / DEL REM Briše sve log datoteke IIS (Windows Server 2003), osim za tekuće i prethodna dva mjeseca. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Briše sve zip datoteke iz mape D: Backup osim trenutnog tjedna. REM Prilikom gore navedenog uzorka naziva datoteke je "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Ispisuje popis svih datoteka na C pogonu koji odgovaraju obrascu: " * -MM- * "(gdje je MM zamijenjen s 01-12) REM DeleteByDatePattern / D 14" C: Zapisnici "Prijavite se - ???? .txt REM Ispisuje popis svih obrazaca koje bi skripta obrađivala. SETLOCAL EnableExtensions EnableDelayedExpansion REM Podrazumijeva da su postavke datuma / vremena u sustavu Windows postavljene na format 'DayOfWeek M / D / YYYY'. REM Ako je vaš format različit, morat ćete promijeniti dolje navedene varijable tako da se poravnaju. (SET Mjesec = %% B SET dan = %% C SET Godina = %% D) IF (FORUM / F) oznake = 1,2,3,4 delims = / "%% / I % 1 == / M (SET Keep =% Mjesec% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Max = od maksimalnih dana prethodnog mjeseca SET / A PrevMonth =% Mjesec% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Leap godina ... dodajte više prema potrebi IF / I% Godina% EQU 2012 SET Max = 29 IF / I% Godina% EQU 2016 SET Max = 29) IF / I! PretMonth! EQU 4 SET Maks = 30 IF / I! PrevMonth! EQU 6 SET Maks = 30 IF / I! PrevMonth! EQU 9 SET Maks = 30 IF / I! PrevMonth! EQU 11 SET Maks = 30) SET struja =% Držite% SET / A Keep =% Keep% -% 2 + 1 REM Odredite raspon koji želite ukloniti. SET / A RemoveHighStart =% Trenutni% + 1 IF / I% Držite% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Držite% +% Maks% -1) ELSE (SET / A RemoveLow = SET RemoveHighEnd =% Maks.%) REM proces sve manje od niskog raspona. UP / L %% Z IN (1,1,% RemoveLow%) UPOZORENJE: Proces %% Z% 3% 4% 5% 6 REM proces sve veći od visokog raspona. UPIT: Proces %% Z% 3% 4% 5% ENDLOCAL GOTO Završetak: Postupak SET ključ = 0% 1 Tip SET =% Tipka:% KEY% ~ 2% SET Target = "% ~ 2% ~ 3% Tipke %% 4" ECHO Ciljni uzorak:% Target% IF / I % 5 == / L DIR% Cilj% B / S IF / I % 5 == / DEL DEL / F / S / Q% Target% GOTO Završetak: Završetak
FORFILES naredba je izvorna u sustavu Windows, no brisanje DeleteByDatePattern treba biti smješteno u mapu definiranu u varijabli Path (kao što je mapa Windows), tako da se može nazvati kao da je riječ o nativnoj naredbi. Kada to učinite, možete izraditi zakazani zadatak koji je ili jedna naredba (ako samo trebate izbrisati s jednog mjesta) ili batch datoteka (ako trebate izbrisati iz više lokacija) koja se izvodi dnevno, tjedno, mjesečno ili kad god.
Još jedna stvar koju možete postaviti i zaboraviti.
Preuzmite brisanje po skripti datumskog obrasca iz Sysadmin Geek