If-Koubou

Vanhojen lokitiedostojen poistamisprosessin automatisointi

Vanhojen lokitiedostojen poistamisprosessin automatisointi (Miten)

Monet palvelut ja ohjelmat siellä tuottavat lokitiedostoja kirjautumispoluksi kaikesta, mitä he tekevät, mutta harvoilla on toiminto, joka poistaa nämä tiedostot, kun ne ylittävät niiden hyödyllisyyden. Tämän seurauksena nämä lokitiedostot istuvat järjestelmässäsi syödä tilaa (joskus enemmän kuin tiedät) ja pilaamattomia hakemistoja niinä aikoina, jolloin tarvitset niitä.

Joten jos et tarvitse näitä tiedostoja, miksi pitää ne? Aiomme näyttää, kuinka helposti poistaa nämä vanhat lokitiedostot, jotta järjestelmä olisi kiva ja siisti.

Tietenkin, kun alla luetellut ovat välittömästi hyödyllisiä lokitiedostojen hallitsemisessa, voit myös soveltaa samoja tekniikoita mihin tahansa muuntyyppiseen "vanhentuvaan" tiedostoon (kuten varmuuskopiointiin).

Poista tiedostot viimeisen muunnetun päivämäärän perusteella

Jos haluat poistaa olemassa olevat lokitiedostot vain viimeisimmästä päivämäärästä, sinun on käytettävä 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 alikansit, joita ei ole muokattu viime viikolla.

FORFILES-komento on melko joustava hakukuvio- ja päivämäärätoiminnoilla. Esimerkiksi numeron sijasta voit kirjoittaa päivämäärän, kuten "-1/13/2010", poistaa tiedostoja, jotka on viimeksi muokattu ennen määritettyä päivämäärää.

Jos haluat saada kaikki tiedot, jotka FORFILES voi tehdä, katso online-ohjeita komentokehotteesta seuraavan komennon avulla:

FORFILES /?

Poista tiedostojen päivämäärän perusteella tiedostonimi

Monet sovellukset ja palvelut tuottavat päiväkirjaan perustuvia lokitiedostoja, joilla on yksi päiväkohtainen lokitiedosto (ts. Log100113.txt, Backup 2010-01-13.zip jne.). Näiden tyyppisten tiedostojen kohdalla on parempi poistaa tiedoston päivämäärän perusteella sen sijaan, että tiedosto sisällytettiin tiedostonimeen viimeisen muokatun päivämäärän sijasta. Tämä on hyödyllinen skenaarioissa, kuten kaikkien lokitiedostojen tallentamisesta viimeisten kolmen kuukauden ajan. Valitettavasti Windowsissa ei ole natiivi komentoa tämän tyyppisellä logiikalla, mutta komentosarjalla voimme käsitellä tätä tehtävää helposti.

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

Käsikirjoitus

@ ECHO POISTA ECHO Poisto päivämäärän mukaan ECHO Kirjoittanut: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Poista / Valitse tiedostot päivämäärän perusteella, joka käyttää MM ja / tai DD tiedoston nimeämismalleja. REM REM Käyttö: REM DeleteByDatePattern / M | / D NumberToKeep-polku PatternPrefix PatternPostfix [/ L | / DEL] REM / M Määrittää käytettävän kuvion kuukausien perusteella. REM / D Määrittää käytettävä kuvio perustuu päiviin. REM NumberToKeep REM Kuukausien (/ M) tai päivien (/ D) lukumäärä, mukaan lukien nykyinen. REM Esimerkiksi syöttämällä 1 pitää vain nykyisen kuukauden / päivän ja 6 pitää nykyisen miinus 5. REM-polku Etsi juuren sijainti. Alihakemistoja etsitään. REM PatternPrefix REM Tiedostokehityskuvio, joka on sijoitettu ennen kuukausia / päivää, kun haetaan hakusanaa. REM PatternPostfix REM Kuukauden / päivän jälkeinen tiedostomerkki, joka laatii hakusarjan. REM / L (valinnainen) Luettelee kaikki kuvat, jotka vastaavat mallia, mutta ei poista niitä. REM / DEL (valinnainen) Poistaa kaikki kuvion mukaiset tiedostot. REM REM Esimerkkejä: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? ?? log / DEL REM Poistaa kaikki IIS-lokitiedostot (Windows Server 2003) paitsi nykyisen ja kahden edellisen kuukauden aikana. REM DeleteByDatePattern / D 7 "D: Varmuuskopiointi" * - ???? - ?? - .zip / DEL REM Poistaa kaikki zip-tiedostot D: Backup-kansiosta paitsi nykyisen viikon. REM Edellä kuvattu tiedostonimikuvio on "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Tulostaa luettelon kaikista C-aseman tiedoista, jotka vastaavat mallia: " * -MM- * "(jossa MM korvataan 01-12) REM DeleteByDatePattern / D 14" C: Lokit "Loki - ???? .txt REM Tulostaa luettelon kaikista kuvioista, joita komentosarja käsittelee. SETLOCAL EnableExtensions EnableDelayedExpansion REM Oletetaan, että Windowsin päivämäärä- / kellonajan asetukset on asetettu "DayOfWeek M / D / YYYY" -muotoon. REM Jos formaatti on erilainen, sinun on muutettava alla olevia muuttujia, jotta ne sopisivat yhteen. (SET KÄYTTÄJÄ = %% B SET Päivä = %% C SET Vuosi = %% D) IF (FOR DATE / T) / SET % 1 == / M (SET Pidä =% Kuukausi% SET Max = 12) IF / I % 1 == / D 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! PreMonth! EQU 4 SET Max = 30 IF / I! PreMonth! EQU 6 SET Max = 30 IF / I! / I! PreMonth! EQU 11 SET Max = 30) SET Current =% Pidä% SET / A Pidä =% Pidä% -% 2 + 1 REM Määritä poistettava alue. SET / A PoistaHighStart =% Nykyinen% + 1 IF / I% Pidä% LSS 1 (SET RemoveLow = 0 SET / A PoistaHighEnd =% Pidä% +% Max% -1) ELSE (SET / A RemoveLow = SET RemoveHighEnd =% Max%) REM Prosessi vähenee vain matalalla alueella. FOR / L %% Z IN (1,1,% RemoveLow%) DO CALL: Prosessi %% Z% 3% 4% 5% 6 REM Prosessi, joka on suurempi kuin korkein alue. KÄYTTÖÖN: Prosessi %% Z% 3% 4% 5% 6 ENDLOCAL GOTO End: Prosessin SET-näppäin = 0% 1 SET-näppäin =% -näppäin:% KEHTO: Prosessi %% Z% (% RemoveHighStart%, 1,% RemoveHighEnd% ~ 2% SET Target = "% ~ 2% ~ 3% Key %% 4" ECHO Target Pattern:% Target% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Target% GOTO End: Lopeta

Prosessin automatisointi

FORFILES-komento on kotoisin Windowsille, mutta DeleteByDatPattern-skripti tulee sijoittaa polku-muuttujaan (kuten Windows-kansioon) määritettyyn kansioon, joten sitä voidaan kutsua ikään kuin se olisi natiivi komento. Kun tämä on tehty, voit luoda ajoitetun tehtävän, joka on joko yksi komento (jos haluat poistaa vain yhdestä paikasta) tai erätiedoston (jos haluat poistaa useista sijainneista), joka toimii päivittäin, viikoittain, kuukausittain tai milloin tahansa.

Yksi asia, jonka voit asettaa ja unohtaa.

Linkit

Lataa Delete By Date Pattern -komento scriptista Sysadmin Geekista