Kotisivu » miten » Vanhojen lokitiedostojen poistamisprosessin automatisointi

    Vanhojen lokitiedostojen poistamisprosessin automatisointi

    Monet palvelut ja ohjelmat tuottavat lokitiedostoja tarkastusreitinä kaikelle, mitä he tekevät, mutta harvoilla on kuitenkin toiminto, joka poistaa nämä tiedostot niiden hyödyllisyydestä. Tämän seurauksena nämä lokitiedostot istuvat järjestelmässäsi syömällä tilaa (joskus enemmän kuin tiedätte) ja sekoittamalla hakemistoja niille ajoille, joille sinun tarvitsee käyttää niitä.

    Joten jos et tarvitse näitä tiedostoja, miksi pitää ne? Näytämme sinulle, miten voit poistaa nämä vanhat lokitiedostot helposti, jotta järjestelmä pysyy miellyttävänä ja siistinä.

    Tietenkin, vaikka alla olevissa asioissa olemme heti hyödyllisiä lokitiedostojen hallinnassa, voit myös soveltaa samoja tekniikoita mihin tahansa muuntyyppiseen “vanhentuvaan” tiedostoon (kuten varmuuskopiot).

    Poista tiedostot viimeksi muokatun päivämäärän perusteella

    Jos haluat tyhjentää olemassa olevat lokitiedostot pelkästään tiedoston viimeisen muutetun päivämäärän perusteella, sinun tarvitsee vain käyttää FORFILES-komentoa. Esimerkiksi:

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

    Yllä oleva komento poistaa kaikki tiedostot "C: LogFiles" -kansiosta ja kaikki alikansiot, joita ei ole muutettu viime viikolla.

    FORFILES-komento on melko joustava hakumallin ja päivämäärätoimintojen kanssa. Esimerkiksi numeron sijaan voit syöttää päivämäärän, kuten '-1/13/2010', jos haluat poistaa tiedostoja, joita on viimeksi muutettu ennen tiettyä päivämäärää.

    Jos haluat saada kaikki tiedot siitä, mitä FORFILES voi tehdä, tutustu online-ohjeeseen seuraavan komennon avulla komentoriviltä:

    FORFILES /?

    Tiedostojen poistaminen tiedostojen nimen päivämäärämallin perusteella

    Monet sovellukset ja palvelut tuottavat lokitiedostoja, jotka perustuvat päivämääräkuvioon, ja niissä on yksi lokitiedosto päivässä (ts. Log100113.txt, Backup-2010-01-13.zip jne.). Näiden tiedostotyyppien kohdalla on suositeltavaa poistaa tiedosto, joka on sisällytetty tiedostonimeen viimeksi muokatun päivämäärän sijaan. Tämä on hyödyllistä skenaarioissa, kuten kaikkien lokitiedostojen pitäminen viimeisten 3 kuukauden aikana. Valitettavasti Windowsilla ei ole natiivia komentoa tämäntyyppisellä logiikalla, mutta eräskriptiä voidaan käsitellä helposti.

    Käsikirjoituksen käyttöohjeissa on esimerkkejä, joten sen pitäisi olla melko helppo selvittää.

    Käsikirjoitus

    @ECHO POIS ECHO Poista päivämäärämallin mukaan ECHO Kirjoittanut: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Delete / Valitse tiedostot, jotka perustuvat päivämäärään, joka käyttää MM- ja / tai DD-tiedostoja tiedostojen nimeämismalleissa. REM REM Käyttö: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Määrittää, että käytetty malli perustuu kuukausiin. REM / D Määrittää, että käytetty malli perustuu päiviin. REM NumberToKeep REM Säilytettävien kuukausien määrä (/ M) tai päivät (/ D), mukaan lukien virta. REM Esimerkiksi 1: n syöttäminen pitää vain nykyisen kuukauden / päivän ja 6 säilyttää nykyisen miinus 5. REM-polku Juuripaikka haettavaksi. Hakemistoja haetaan. REM PatternPrefix REM Tiedostonhakumalli, joka on sijoitettu ennen kuukauden / päivän alkua hakusarjan rakentamisessa. REM PatternPostfix REM Tiedostonhakumalli, joka sijoitetaan kuukauden / päivän jälkeen hakusarjan rakentamisessa. REM / L (valinnainen) Luettelee kaikki mallia vastaavat tiedostot, mutta ei poista niitä. REM / DEL (valinnainen) Poistaa kaikki kuviota vastaavat tiedostot. REM REM Esimerkkejä: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? ??.log / DEL REM Poistaa kaikki IIS-lokitiedostot (Windows Server 2003) lukuun ottamatta nykyistä ja edellistä kahta kuukautta. REM DeleteByDatePattern / D 7 "D: varmuuskopiointi" * - ???? - ?? - .zip / DEL REM Poistaa kaikki zip-tiedostot D: Backup-kansiosta lukuun ottamatta nykyistä viikkoa. REM Edellä kuvatun tiedostonimen kuvio on "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Tulostaa luettelon kaikista C-aseman tiedostoista, jotka vastaavat mallia: " * -MM- * "(jossa MM korvataan 01-12) REM DeleteByDatePattern / D 14" C: Lokit "Loki - ???? .txt REM Tulostaa luettelon kaikista kuvioista, joita skripti käsittelee. SETLOCAL EnableExtensions EnableDelayedExpansion REM Oletetaan, että Windows-päivämäärän / kellonajan asetukset on asetettu "DayOfWeek M / D / YYYY" -muodoksi. REM Jos formaatti on erilainen, sinun on muutettava alla olevia muuttujia, jotta ne kohdistuvat. FOR / F "-merkit = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET-kuukausi = %% B SET-päivä = %% C SET-vuosi = %% D) IF / I % 1 == / M (SET Keep =% Kuukausi% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Max = 31 REM-työ SET / A PrevMonth =% Kuukausi% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Leap vuotta… lisää tarvittaessa. IF / I% Vuosi% EQU 2012 SET max = 29 IF / I% Vuosi% 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 =% Pidä% SET / A Pidä =% Pidä% -% 2 + 1 REM Määritä poistettava alue. SET / A RemoveHighStart =% Nykyinen% + 1 IF / I% Säilytä% LSS 1 (SET RemoveLow = 0 SET / A PoistaHighEnd =% Pidä% +% Max% -1) ELSE (SET / A PoistaLow =% Pidä% -1 SET RemoveHighEnd =% Max%) REM-prosessi on pienempi kuin matala alue. FOR / L %% Z IN (1,1,% RemoveLow%) DO CALL: Process %% Z% 3% 4% 5% 6 REM-prosessi on suurempi kuin korkealla. FOR / L %% Z IN (% RemoveHighStart%,%,% RemoveHighEnd%) DO CALL: Process %% Z% 3% 4% 5% 6 ENDLOCAL GOTO End: Prosessin SET-näppäin = 0% 1 SET-näppäin =% avain: ~ -2% SET-tavoite = "% ~ 2% ~ 3% Avain %% ~ 4" ECHO-kohdemalli:% Target% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Kohde% GOTO Loppu: Lopeta

    Prosessin automatisointi

    FORFILES-komento on natiivi Windowsille, mutta DeleteByDatePattern-komentosarja tulisi sijoittaa polun muuttujaan (kuten Windows-kansioon) määritettyyn kansioon, jotta se voidaan kutsua kuin se olisi natiivi komento. Kun tämä on tehty, voit luoda ajoitetun tehtävän, joka on joko yksi komento (jos sinun tarvitsee vain poistaa yhdestä paikasta) tai erätiedosto (jos haluat poistaa useita paikkoja), joka toimii päivittäin, viikoittain, kuukausittain tai aina.

    Vielä yksi asia, jonka voit asettaa ja unohtaa.

    Linkit

    Lataa Delete By Date -mallin komentosarja Sysadmin Geekiltä