Koduleht » kuidas » Vanade logifailide kustutamise protsessi automatiseerimine

    Vanade logifailide kustutamise protsessi automatiseerimine

    Paljud seal pakutavad teenused ja programmid toodavad logifaile audititeekonnana kõike, mida nad teevad, kuid vähestel on funktsioon, mis eemaldab need failid, kui need on kasulikud. Selle tulemusena istuvad need logifailid teie süsteemis sööma ruumi (mõnikord rohkem kui teate) ja segadustavad kataloogid nende aegade jaoks, mida peate neile juurde pääsema.

    Nii et kui sa neid faile ei vaja, siis miks neid hoida? Näitame teile, kuidas neid vanu logifaile kergesti eemaldada, et hoida teid süsteemi kena ja korras.

    Loomulikult, kuigi allpool olevad andmed on kohe logifailide haldamiseks kasulikud, saate samu meetodeid rakendada ka mõnele muule "lõppeva" faili tüübile (nt varukoopiaid).

    Failide eemaldamine viimati muudetud kuupäeva põhjal

    Kui soovite kustutada olemasolevad logifailid ainult faili viimase muudetud kuupäeva põhjal, peate kasutama käsku FORFILES. Näiteks:

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

    Ülaltoodud käsk kustutaks kõik failid kaustast „C: LogFiles” ja kõik alamkaustad, mida pole eelmisel nädalal muudetud.

    Käsk FORFILES on otsingumustri ja kuupäeva funktsioonide puhul üsna paindlik. Näiteks saate numbri asemel sisestada kuupäeva, nagu "-1/13/2010", et kustutada failid, mida on viimati muudetud enne määratud kuupäeva.

    Et saada kõiki üksikasju FORFILESi toimimise kohta, vaadake veebipõhist abi käsureale järgneva käsuga:

    FORFILES /?

    Failide eemaldamine failinime kuupäeva järgi

    Paljud rakendused ja teenused toodavad logifaile, mis põhinevad kuupäeva mustril, et neil oleks üks logifail päevas (s.o Log100113.txt, Backup-2010-01-13.zip jne). Nende failitüüpide puhul on eelistatav kustutada failinimele lisatud faili kuupäeva asemel viimati muudetud kuupäev. See on kasulik selliste stsenaariumide puhul nagu kõigi logifailide säilitamine viimase 3 kuu jooksul. Kahjuks ei ole Windowsil sellist tüüpi loogikat omavat käsku, kuid partii skriptiga saame seda ülesannet kergesti käsitseda.

    Skripti kasutus kommentaarides on näiteid, nii et see peaks olema üsna lihtne välja selgitada.

    Skript

    ECECH Kustutab kuupäeva järgi ECHO Kirjutas: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Delete / Select failid, mis põhinevad kuupäeval, mis kasutab MM-i ja / või DD-d failinimede jaoks. REM REM kasutamine: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Määrab, et kasutatav muster põhineb kuudel. REM / D Määrab kasutatava mustri päevadel. REM NumberToKeep REM Hoiduvate kuude arv (/ M) või päevad (/ D), kaasa arvatud vool. REM Näiteks 1 sisestamine hoiab ainult jooksvat kuud / päeva ja 6 hoiab praegust miinus 5. REM Path Otsinguvõimalus. Alamkatalooge otsitakse. REM PatternPrefix REM Failide otsingu muster, mis on paigutatud otsingu stringi loomisel enne kuu / päeva. REM PatternPostfix REM Failide otsingu muster, mis on paigutatud otsingu stringi ülesehitamise järel kuu / päeva järel. REM / L (valikuline) Loetleb kõiki failile vastavaid faile, kuid ei kustuta neid. REM / DEL (valikuline) Kustutab kõik mustrile vastavad failid. REM REM Näited: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles"? ??.log / DEL REM Kustutab kõik IIS logifailid (Windows Server 2003), välja arvatud praegused ja eelmised kaks kuud. REM DeleteByDatePattern / D 7 "D: varundamine" * - ???? - ?? - .zip / DEL REM Kustutab kõik zip-failid D: Backup kaustast, välja arvatud jooksval nädalal. REM Ülalkirjeldatud failinime muster on "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Prindib loendi kõigist C-draivi failidest, mis vastavad mustrile: " * -MM- * "(kus MM asendatakse 01-12-ga) REM DeleteByDatePattern / D 14" C: logid "Logi - ???? .txt REM Prindib nimekirja kõigist skripti poolt töödeldavatest mustritest. SETLOCAL EnableExtensions EnableDelayedExpansion REM Eeldab, et teie Windowsi kuupäeva / kellaaja seadistused on seatud 'DayOfWeek M / D / YYYY' formaadile. REM Kui teie formaat on erinev, peate muutma allpool toodud muutujaid, nii et need muutuksid. FOR / F "märgid = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET kuu = %% B SET päev = %% C SET Year = %% D) IF / I % 1 == / M (SET Keep =% kuu% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Max = 31 REM töötamine eelmise kuu maksimaalsete päevade väljalülitamine SET / A PrevMonth =% kuu% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Leap aastat… lisage vajadusel. IF / I% Aasta% EQU 2012 SET max = 29 IF / I% Aasta% EQU 2016 SET Maksimaalne = 29) IF / I! EelmineKontakt EQU 4 SET Maksimaalne = 30 IF / I! PrevMonth! EQU 6 SET Max = 30 IF / I! / I! PrevMonth! EQU 11 SET Max = 30) SET Current =% Hoidke% SET / A Keep =% Hoidke% -% 2 + 1 REM Määrake eemaldatav vahemik. SET / A RemoveHighStart =% Praegune% + 1 IF / I% Hoidke% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Hoidke% +% Max% -1) ELSE (SET / A RemoveLow =% Hoidke% -1 SET RemoveHighEnd =% Max%) REM protsess kõik madalam kui madal. FOR / L %% Z IN (1,1,% RemoveLow%) DO CALL: Protsess %% Z% 3% 4% 5% 6 REM Protsess on suurem kui kõrge vahemik. FOR / L %% Z IN (% EemaldaHighStart%, 1,% RemoveHighEnd%) DO CALL: Protsess %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Lõpp: Protsessi SET-klahv = 0% 1 SET-klahv =% Key: ~ -2% SET Target = "% ~ 2% ~ 3% Key %% ~ 4" ECHO sihtmärk:% Target% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Target% GOTO lõpp: lõpp

    Protsessi automatiseerimine

    Käsk FORFILES on Windowsi jaoks natiivne, kuid DeleteByDatePatterni skript tuleks paigutada kausta, mis on määratud teie Path muutujaga (näiteks teie Windowsi kausta), nii et seda saab kutsuda nii, nagu oleks see kohalik käsk. Kui see on tehtud, saate luua ajastatud ülesande, mis on kas üksik käsk (kui peate kustutama ainult ühest asukohast) või pakettfail (kui teil on vaja kustutada mitmest asukohast), mis kestab päevas, nädalas, kuus või alati.

    Veel üks asi, mida saate seadistada ja unustada.

    Lingid

    Laadi kustutada kuupäeva järgi skript Sysadmin Geekilt