If-Koubou

Automatizarea procesului de ștergere a fișierelor istorice vechi

Automatizarea procesului de ștergere a fișierelor istorice vechi (Cum să)

Multe servicii și programe de acolo produc fișiere de jurnal ca o pistă de audit pentru tot ceea ce fac, cu toate acestea puțini au o funcție care elimină aceste fișiere deoarece acestea își depășesc utilitatea. Ca rezultat, aceste fișiere de jurnale stau pe sistemul dvs. consumând spațiu (uneori mai mult decât știi) și aglomerând directoare pentru acele momente în care trebuie să le accesați.

Deci, dacă nu aveți nevoie de aceste fișiere, de ce să le păstrați? Vă vom arăta cum să eliminați cu ușurință aceste fișiere istorice vechi pentru a vă menține sistemul frumos și ordonat.

Desigur, în timp ce acoperim mai jos, sunt imediat utile pentru gestionarea fișierelor de jurnal, puteți aplica aceleași tehnici și pentru orice alt tip de fișier "expirat" (cum ar fi copii de rezervă).

Eliminați fișierele în funcție de ultima dată modificată

Dacă doriți să ștergeți fișierele jurnal existente numai pe baza ultimei modificări a fișierului, tot ce trebuie să faceți este să utilizați comanda FORFILES. De exemplu:

FORFILES / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / Q" PATH "

Comanda de mai sus va șterge toate fișierele din dosarul "C: LogFiles" și toate subdosajele care nu au fost modificate în ultima săptămână.

Comanda FORFILES este destul de flexibilă cu funcțiile de căutare și date. De exemplu, în locul unui număr, puteți introduce o dată, cum ar fi "-1/13/2010", pentru a șterge fișierele modificate ultima dată înainte de data specificată.

Pentru a obține toate detaliile despre ceea ce poate face FORFILES, vizualizați ajutorul online utilizând următoarea comandă din linia de comandă:

FORFILES /?

Eliminați fișierele bazate pe un model de dată în numele fișierului

Multe aplicații și servicii generează fișiere log pe baza unui model de dată ca să aibă un fișier log pe zi (adică Log100113.txt, Backup-2010-01-13.zip, etc.). Pentru aceste tipuri de fișiere, este preferabil să ștergeți pe baza datei fișierului încorporat în numele fișierului, și nu ultima dată modificată. Acest lucru este util pentru scenarii cum ar fi păstrarea tuturor fișierelor de jurnal pentru ultimele 3 luni. Din păcate, Windows nu are o comandă nativă cu acest tip de logică, dar cu un script batch putem să ne ocupăm cu ușurință de această sarcină.

Există exemple incluse în comentariile de utilizare a scriptului, deci ar trebui să fie destul de ușor să dai seama.

Scriptul

@CHO OFF ECHO Ștergere după dată Model ECHO Scris de: Jason Faulkner ECHO SysadminGeek.com ECHO. ECOU. REM Delete / Selectarea fișierelor pe baza unei date care utilizează MM și / sau DD pentru modelele de denumire a fișierelor. Utilizarea REM REM: REM DeleteByDatePattern / M | / D Calea NumToKeep PatternPrefix PatternPostfix [/ L | / DEL] REM / M Specifică faptul că modelul utilizat se bazează pe luni. REM / D Specifică faptul că modelul utilizat se bazează pe zile. REM NumberToKeep REM Numărul de luni (/ M) sau de zile (/ D) pe care trebuie să le păstrați, inclusiv cel curent. REM De exemplu, introducerea 1 păstrează numai luna / zi curentă și 6 va păstra actuala minus 5. REM Path Locația rădăcinii pentru căutare. Subdirectoarele vor fi căutate. REM PatternPrefix REM Modelul de căutare a fișierelor plasat înainte de lună / zi când se construiește șirul de căutare. REM PatternPostfix REM Modelul de căutare a fișierelor plasat după luna / ziua când se construiește șirul de căutare. REM / L (opțional) Listează toate fișierele care se potrivesc cu modelul, dar nu le șterge. REM / DEL (opțional) Șterge toate fișierele care se potrivesc cu modelul. REM REM Exemple: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? Jurnal / DEL REM Șterge toate fișierele jurnalului IIS (Windows Server 2003), cu excepția celor două luni și a celor anterioare. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Șterge toate fișierele zip din dosarul D: Backup, cu excepția săptămânii curente. REM Numele modelului de fișier asumat mai sus este "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Imprimă o listă a tuturor fișierelor de pe unitatea C care se potrivește cu modelul: * -MM- * "(unde MM este înlocuit cu 01-12) REM DeleteByDatePattern / D 14" C: Jurnal "Jurnal - ???? .txt REM Tipărește o listă cu toate modelele care vor fi procesate de script. SETLOCAL EnableExtensions EnableDelayedExpansion REM Se presupune că setările de dată / oră Windows sunt setate la formatul "DayOfWeek M / D / YYYY". REM Dacă formatul dvs. este diferit, va trebui să modificați variabilele de mai jos pentru a le alinia. FOR = F "= 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET Luna = %% B SET Ziua = %% C SET An = / I % 1 == / M (SET Păstrați =% Lună% SET Max = 12) IF / I % 1 == / D off SET-A PrevMonth =% Lună% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Anii de salt ... adăugați mai mult dacă este necesar. IF / I% Anul% EQU 2016 SET Max = 29) IF / I! PrevMonth! EQU 4 SET Max = 30 IF / I! PrevMonth! EQU 6 SET Max = 30 IF / I! / I! PrevMonth! EQU 11 SET Max = 30) SET Curent =% Păstrați% SET / A Păstrați =% Păstrați% -% 2 + 1 REM Determinați intervalul de eliminat. SET / A RemoveHighStart =% Curent% + 1 IF / I% Păstrați% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Păstrați% +% Max% -1) SET RemoveHighEnd =% Max%) REM Procesează tot mai puțin decât domeniul scăzut. FORM / L %% Z IN (1,1,% RemoveLow%) DACA: Procesați %% Z% 3% 4% 5% 6 REM Procesați tot mai mult decât intervalul mare. FORMULA: Procesul %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Sfarsit: Procesul Tasta SET = 0% 1 Tasta SET = Tasta% ~ -2% SET Target = "% ~ 2% ~ 3% Cheie %% ~ 4" Modelul țintă ECHO:% Target% IF / I % 5 == / L DIR% Target% / I % 5 == / DEL DEL / F / S / Q% Țintă% GOTO Sfârșit: Sfârșit

Automatizarea procesului

Comanda FORFILES este nativă pentru Windows, însă scriptul DeleteByDatePattern ar trebui să fie plasat într-un folder definit în variabila Path (cum ar fi folderul Windows) astfel încât să poată fi apelat ca și cum ar fi o comandă nativă. Odată ce acest lucru este făcut, puteți crea o sarcină programată care este fie o singură comandă (dacă trebuie să ștergeți dintr-o singură locație), fie un fișier batch (dacă trebuie să ștergeți din mai multe locații) care rulează zilnic, săptămânal, lunar ori de câte ori.

Încă un lucru pe care îl poți seta și uita.

Link-uri

Descărcați Șterge după dată Model de script de la Sysadmin Geek