Početna » kako da » Automatiziranje procesa brisanja starih datoteka zapisnika

    Automatiziranje procesa brisanja starih datoteka zapisnika

    Mnoge usluge i programi tamo proizvode log datoteke kao revizijski trag za sve što rade, no malo njih ima funkciju koja uklanja te datoteke dok nadživljavaju njihovu korisnost. Kao rezultat toga, te datoteke dnevnika sjede na vašem sustavu i zauzimaju prostor (ponekad i više nego što znate) i zagušuju direktorije za ta vremena koja su vam potrebna da biste im pristupili.

    Dakle, ako vam nisu potrebne ove datoteke, zašto ih zadržati? Pokazat ćemo vam kako lako ukloniti te stare datoteke dnevnika kako biste bili lijepi i uredni.

    Naravno, dok su donje informacije odmah korisne za upravljanje zapisničkim datotekama, iste tehnike možete primijeniti i na bilo koju drugu vrstu datoteke koja "istječe" (kao što su sigurnosne kopije).

    Uklanjanje datoteka na temelju zadnje izmijenjenog datuma

    Ako želite izbrisati postojeće datoteke dnevnika isključivo na temelju datuma zadnje izmjene datoteke, sve što trebate učiniti jest koristiti naredbu FORFILES. Na primjer:

    FORFILES / P “C: LogFiles” / S / D-7 / C “CMD / C DEL / F / Q @ PATH”

    Gornja naredba izbrisala bi sve datoteke iz mape "C: LogFiles" i sve pod-mape koje nisu izmijenjene u zadnjem tjednu.

    Naredba FORFILES je prilično fleksibilna s načinom pretraživanja i funkcijama datuma. Na primjer, umjesto broja, možete unijeti datum poput "-1/13/2010" da biste izbrisali zadnje izmijenjene datoteke prije navedenog datuma.

    Da biste dobili sve pojedinosti o tome što FORFILES može učiniti, pogledajte mrežnu pomoć pomoću naredbe iz naredbenog retka:

    FORFILES /?

    Uklanjanje datoteka na temelju datuma uzorak u naziv datoteke

    Mnoge aplikacije i usluge proizvode datoteke dnevnika na temelju uzorka datuma kako bi imale jednu datoteku dnevnika po danu (tj. Log100113.txt, Backup-2010-01-13.zip, itd.). Za ove vrste datoteka poželjno je izbrisati na temelju datuma datoteke uključene u naziv datoteke, a ne datuma zadnje izmjene. To je korisno za scenarije kao što je čuvanje svih datoteka dnevnika u posljednja 3 mjeseca. Nažalost, Windows nema izvornu naredbu s ovom vrstom logike, ali s batch skriptom možemo lako riješiti taj zadatak.

    Postoje primjeri uključeni u komentare o korištenju skripte, pa bi trebalo biti prilično lako shvatiti.

    Skripta

    @ECHO OFF ECHO Izbrisati prema datumu Uzorak ECHO Autor: Jason Faulkner ECHO SysadminGeek.com ECHO. JEKA. REM Brisanje / Odabir datoteka na temelju datuma koji koristi MM i / ili DD za obrasce za imenovanje datoteka. REM REM Upotreba: REM DeleteByDatePattern / M | / D BrojToKeep staza PatternPrefix PatternPostfix [/ L | / DEL] REM / M Određuje uzorak koji se koristi temelji se na mjesecima. REM / D Određuje uzorak koji se koristi temelji se na dana. REM NumberToKeep REM Broj mjeseci (/ M) ili dana (/ D) za zadržavanje, uključujući i struju. Primjerice, unos 1 zadržava samo trenutni mjesec / dan, a 6 zadržava trenutni minus 5. REM put Glavna lokacija za pretraživanje. Pretraživat će se podmape. REM PatternPrefix REM Uzorak pretraživanja datoteka postavljen je prije mjeseca / dana pri izradi niza za pretraživanje. REM PatternPostfix REM Uzorak za pretraživanje datoteka postavljen je nakon mjeseca / dana kada se gradi niz za pretraživanje. REM / L (izborno) Popis svih datoteka koje odgovaraju uzorku, ali ih ne briše. REM / DEL (izborno) Briše sve datoteke koje odgovaraju uzorku. REM REM Primjeri: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex? ??. log / DEL REM Briše sve IIS datoteke dnevnika (Windows Server 2003) osim za tekuće i prethodna dva mjeseca. REM DeleteByDatePattern / D 7 "D: Sigurnosna kopija" * - ???? - ?? - .zip / DEL REM Briše sve zip datoteke iz mape D: Sigurnosna kopija osim za tekući tjedan. REM Prethodno pretpostavljeni uzorak naziva datoteke je "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Ispisuje popis svih datoteka na C pogonu koje odgovaraju uzorku: " * -MM- * "(gdje se MM zamjenjuje s 01-12) REM DeleteByDatePattern / D 14" C: Logovi "Log - ???? .txt REM Ispisuje popis svih uzoraka koje će skripta obraditi. SETLOCAL EnableExtensions EnableDelayedExpansion REM Pretpostavlja da su postavke datuma i vremena u sustavu Windows postavljene na format "DayOfWeek M / D / YYYY". REM Ako je vaš format drugačiji, morat ćete promijeniti varijable ispod kako bi se uskladile. FOR / F "tokeni = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET mjesec = %% B SET dan = %% C SET godina = %% D) IF / I % 1 == / M (SET Zadrži =% Mjesec% SET Max = 12) IF / I % 1 == / D (SET Zadrži =% dan% Postavi Maks = 31 REM rad od maksimalnih dana prethodnog mjeseca SET / A PrevMonth =% Mjesec% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM prijestupnih godina… dodajte više prema potrebi. IF / I% Godina% EQU 2012 SET Max = 29 IF / I% godina% EQU 2016 SET Max = 29) IF / I PrevMonth! EQU 4 SET Max = 30 IF / I PrevMonth! EQU 6 SET Max = 30 IF / I PrevMonth! EQU 9 SET Max = 30 IF / I! PrevMonth! EQU 11 SET Max = 30) SET Current =% Keep% SET / A Zadrži =%%%% 2 + 1 REM Odredite raspon koji želite ukloniti. SET / A RemoveHighStart =% Trenutni% + 1 IF / I% Zadrži% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Keep% +% Max% -1) ELSE (SET / A RemoveLow =% Keep% -1 SET RemoveHighEnd =% Max%) REM Proces sve manje od niskog raspona. FOR / L %% Z IN (1,1,% RemoveLow%) DO POZIVA: Proces %% Z% 3% 4% 5% 6 REM Proces je veći od velikog raspona. ZA / L %% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) DO POZIVA: Proces %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Kraj: Process SET Key = 0% 1 SET Tipka =% Ključ: ~ -2% SET Target = "% ~ 2% ~ 3% Ključ %% ~ 4" ECHO ciljni uzorak:% Cilj% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Cilj% GOTO Kraj: Kraj

    Automatiziranje procesa

    Naredba FORFILES izvorna je za Windows, no skripta DeleteByDatePattern trebala bi biti smještena u mapu definiranu u vašoj varijabli Path (kao što je mapa Windows) tako da se može pozvati kao da je izvorna naredba. Kada to učinite, možete izraditi zakazani zadatak koji je ili jedna naredba (ako trebate samo izbrisati s jedne lokacije) ili skupnu datoteku (ako trebate izbrisati s više lokacija) koja se izvodi dnevno, tjedno, mjesečno ili kad god.

    Još jedna stvar koju možete postaviti i zaboraviti.

    linkovi

    Preuzmite Delete By Date Pattern iz Sysadmin Geek