If-Koubou

Автоматизиране на процеса на изтриване на стари дневници

Автоматизиране на процеса на изтриване на стари дневници (Как да)

Много услуги и програми там създават регистрационни файлове като одиторска пътека за всичко, което правят, но малцина имат функция, която премахва тези файлове, тъй като те преживяват тяхната полезност. В резултат на това тези файлове с регистрации се намират във вашата система, която яде пространство (понякога повече от това, което знаете) и претрупване на директории за онези времена, които трябва да имате достъп до тях.

Така че, ако нямате нужда от тези файлове, защо да ги пазите? Ще ви покажем как лесно можете да премахнете тези стари лог файлове, за да ви поддържат системата приятна и подредена.

Разбира се, докато ние, които покриваме по-долу, са полезни за управлението на лог файловете, можете да приложите същите техники и към друг тип "изтичащ" файл (като резервни копия).

Премахване на файлове въз основа на последната актуализирана дата

Ако искате да изчистите съществуващите си дневници въз основа само на последната променена дата на файла, всичко, което трябва да направите, е да използвате командата FORFILES. Например:

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

Горната команда ще изтрие всички файлове от папката "C: LogFiles" и всички подпапки, които не са променени през последната седмица.

Командата FORFILES е доста гъвкава с функциите за търсене и дата. Например вместо номер можете да въведете дата като "-1.13.2010", за да изтриете файлове, последно променени преди определената дата.

За да получите всички подробности за това, което FORFILES може да направи, разгледайте онлайн помощта, като използвате следната команда от командния ред:

FORFILES /?

Премахване на файлове въз основа на модел на дата в името на файла

Много приложения и услуги произвеждат журнални файлове въз основа на модел на дата, така че да имат един дневник файл на ден (т.е. Log100113.txt, Backup-2010-01-13.zip и т.н.). За тези типове файлове е за предпочитане да се изтрие на базата на датата на файла, включен в името на файла, а не на последната модифицирана дата. Това е полезно за сценарии, като запазване на всички файлове с файлове за регистрация за последните 3 месеца. За съжаление, Windows няма родна команда с този тип логика, но с партиден скрипт можем лесно да се справим с тази задача.

Има примери, включени в коментарите за използване на сценария, така че трябва да е доста лесно да разбера.

Скриптът

@ECHO OFF ECHO Изтриване по дата Модел ECHO Автор: Jason Faulkner ECHO SysadminGeek.com ECHO. Хуманитарна помощ. REM Изтриване / Избор на файлове въз основа на дата, която използва MM и / или DD за шаблони за именуване на файлове. Използване на REM REM: REM DeleteByDatePattern / M | / D НомерToKeep Път на PatternPrefix PatternPostfix [/ L | / DEL] REM / M Указва, че използваният модел се основава на месеци. REM / D Указва, че използваният модел се основава на дни. REM NumberToKeep REM Броят месеци (/ M) или дни (/ D), които трябва да се съхраняват, включително текущия. REM Например, въвеждането на 1 запазва само текущия месец / ден и 6 ще запази текущия минус 5. REM Path Коренното местоположение за търсене. Поддиректории ще бъдат търсени. REM PatternPrefix REM Шаблонът за търсене на файлове е поставен преди от месеца / деня при изграждането на низа за търсене. REM PatternPostfix REM Модел за търсене на файлове, поставен след месеца / деня при изграждането на низа за търсене. REM / L (по избор) Извежда списък на всички файлове, съответстващи на модела, но не ги изтрива. REM / DEL (по избор) Изтрива всички файлове, съответстващи на шаблона. REM REM Примери: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? log / DEL REM Изтрива всички лог файлове на IIS (Windows Server 2003) с изключение на текущия и предходните два месеца. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Изтрива всички zip файлове от папката D: Backup, с изключение на текущата седмица. REM Наименованието на файла, поето по-горе, е "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Отпечатва списък на всички файлове на C- * -MM- * "(където ММ се заменя с 01-12) REM DeleteByDatePattern / D 14" C: Дневници "Дневник - ???? .txt REM Отпечатва списък на всички модели, които ще бъдат обработени от скрипта. SETLOCAL EnableExtensions EnableDelayedExpansion REM Предполага се, че вашите настройки за дата и час в Windows са зададени във формат "DayOfWeek M / D / YYYY". REM Ако вашият формат е различен, ще трябва да промените променливите по-долу, за да се приведат в съответствие. FOR / F "символи = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET Месец = %% B SET Ден = %% C SET Година = %% D) / I % 1 == / M (Запазване на SET =% Месец% SET Max = 12) IF / I % 1 == / D (SET MAX = 28 REM Големи години ... добавете повече, ако е необходимо. АКО / I% Година% EQU 2012 SET MAX = 29 АКО / I% Година% EQU 2016 SET Макс = 29) IF / I! Предимство EQU 4 SET Макс = 30 IF / I! Предимство EQU 6 SET Max = 30 IF / I! / I! PrevMonth! EQU 11 SET Макс = 30) SET Ток =% Пазете% SET / A Пазете =% Пазете% -% 2 + 1 REM Определете обхвата, който да бъде премахнат. SET / A RemoveHighStart =% Текущи% + 1 IF / I% Съхраняване% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Keep% +% Max% -1) SET RemoveHighEnd =% Макс%) REM Процесът е по-малък от ниския диапазон. FOR% L %% Z IN (1,1,% RemoveLow%) DO CALL: Процес %% Z% 3% 4% 5% 6 REM Процесът е по-голям от високия диапазон. Задайте %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Край: Процес SET Key = 0% 1 Ключ SET =% Ключ: ~ ~% SET Target = "% ~ 2% ~ 3% Key %% ~ 4" ECHO Target Pattern:% Target% IF / I % 5 == / I % 5 == / DEL DEL / F / S / Q% Насочване% GOTO Край: Край

Автоматизиране на процеса

Командата FORFILES е собствена на Windows, но скриптът DeleteByDatePattern трябва да бъде поставен в папка, дефинирана в променливата "Път" (като папката ви в Windows), така че да може да се нарече така, сякаш е натиснат команда. След като направите това, можете да създадете планирана задача, която е или една команда (ако трябва само да изтриете от едно място) или партиден файл (ако трябва да изтриете от няколко местоположения), който се изпълнява ежедневно, седмично, месечно или по всяко време.

Още нещо, което можете да задавате и забравяте.

звена

Изтегляне Изтриване по дата Сценарий на шаблони от Sysadmin Geek