Многія сэрвісы і праграмы вырабляюць файлы часопісаў як аўдыт для ўсяго, што яны робяць, аднак мала хто мае функцыю, якая выдаляе гэтыя файлы, калі яны перажываюць іх карыснасць. У выніку гэтыя файлы часопісаў сядзяць у вашай сістэме, з'ядаючы прастору (часам больш, чым вы ведаеце) і загрувашчваючы каталогі за тыя часы, калі вам трэба атрымаць доступ да іх.

Дык калі вам гэтыя файлы не патрэбныя, навошта захоўваць іх? Мы пакажам вам, як лёгка выдаляць гэтыя старыя файлы часопісаў, каб сістэма была добрай і дагледжанай.

Зразумела, у той час як мы, якія мы разглядаем ніжэй, адразу карысныя для кіравання файламі часопісаў, вы можаце таксама прымяніць тыя ж метады да любога іншага тыпу "мінаючага" файла (напрыклад, рэзервовага капіявання).

Выдаленне файлаў на аснове апошняй даты

Калі вы хочаце ачысціць існуючыя файлы часопісаў выключна на апошняй змененай даце файла, усё, што вам трэба зрабіць, гэта выкарыстаць каманду FORFILES. Напрыклад:

ФОРМЫ / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / Q @PATH"

Прыведзеная вышэй каманда выдаліла б усе файлы з тэчкі "C: LogFiles" і ўсе падпапкі, якія не былі зменены на працягу апошняга тыдня.

Каманда FORFILES даволі гнуткая з функцыяй пошуку і датай пошуку. Напрыклад, замест нумара вы можаце ўвесці дату, напрыклад, "-1/13/2010", каб выдаліць файлы, апошні раз змененыя да пазначанай даты.

Каб атрымаць усе падрабязнасці пра тое, што FORFILES можа зрабіць, праглядзіце анлайн-даведку, выкарыстоўваючы наступную каманду з каманднага радка:

ФАЙЛЫ /?

Выдаленне файлаў на аснове шаблона даты ў назве файла

Многія прыкладанні і службы вырабляюць файлы часопісаў на аснове шаблона даты з адным файлам часопісаў у дзень (напрыклад, Log100113.txt, Backup-2010-01-13.zip і г.д.). Для гэтых тыпаў файлаў пераважней выдаляць на аснове даты ўключэння ў імя файла, а не даты апошняй змены. Гэта карысна для такіх сцэнарыяў, як захаванне ўсіх файлаў часопісаў за апошнія 3 месяцы. На жаль, у Windows няма роднай каманды з такім тыпам логікі, але з пакетным сцэнарам мы лёгка справімся з гэтай задачай.

Ёсць прыклады, уключаныя ў каментары па выкарыстанні сцэнарыя, таму высветліць, што гэта вельмі проста.

Скрыпт

@ECHO OFF ECHO Выдаліць па даце Шаблон ECHO Аўтар: Джэйсан Фолкнер ECHO SysadminGeek.com ECHO. ECHO. Выдаліць / вылучыць REM-файлы на аснове даты, якая выкарыстоўвае MM і / або DD для шаблонаў наймення файлаў. REM REM Выкарыстанне: REM DeleteByDatePattern {/ M | / D} NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Задае шаблон, які выкарыстоўваецца на аснове месяцаў. REM / D Задае шаблон, які выкарыстоўваецца на аснове дзён. REM NumberToKeep REM Колькасць месяцаў (/ M) або дзён (/ D), якія трэба захаваць, уключаючы бягучы. Напрыклад, пры ўводзе 1 захоўваецца толькі бягучы месяц / дзень, а 6 будзе захоўваць бягучы мінус 5. Шлях REM Каранёвае месцазнаходжанне для пошуку. Будзе праведзены пошук у падкаталогах. 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: Рэзервовае капіраванне" * - ???? - ?? - .zip / DEL REM Выдаляе ўсе паштовыя файлы з тэчкі D: Рэзервовае капіраванне, за выключэннем бягучага тыдня. 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 Калі ваш фармат адрозніваецца, вам трэба будзе змяніць зменныя ніжэй, каб яны выраўнавалі. ДЛЯ / F "лексемы = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET SET = месяц =% B SET Day = %% C SET Год = %% D) IF / I {% 1} == {/ M} (SET Keep =% Месяц% SET Max = 12) IF / I {% 1} == {/ D} (SET Keep =% Day% SET Max = 31 REM Working выключэнне максімальных дзён папярэдняга месяца. SET / A PrevMonth =% Месяц% -1 АБС! PrevMonth! EQU 2 (SET Max = 28 REM Высакосныя гады ... дадаць больш па меры неабходнасці. IF / I% Год% EQU 2012 SET Макс. = 29 IF / I% Год% 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 =% Keep% SET / A Keep =% Keep% -% 2 + 1 REM Вызначце дыяпазон, які трэба выдаліць. SET / A RemoveHighStart =% Ток% + 1 АФ / I% Трымайце% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Захоўвайце% +% Макс% -1) ELSE (SET / A RemoveLow =% Захоўвайце% -1 SET RemoveHighEnd =% Макс.%) Апрацаваць REM усё менш, чым малы дыяпазон. ДЛЯ Л / Л %% Z IN (1,1,% RemoveLow%) ЗАРАБАЙЦЕ: Працэс %% Z% 3% 4% 5% 6 REM Працэс усё больш, чым вялікі дыяпазон. ДЛЯ / L %% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) НАЗВАЙЦЕ: Працэс %% Z% 3% 4% 5% 6 ENDLOCAL GOTO Канец: ключ ключа працэса = 0% 1 ключ SET =% ключ: ~ -2% SET Target = "% ~ 2% ~ 3% Key %% ~ 4" ECHO Target Pattern:% Target% IF / I {% 5} == {/ L} DIR% Target% / B / S IF / Я {% 5} == {/ DEL} DEL / F / S / Q% Мэта% GOTO Канец: Канец

Аўтаматызацыя працэсу

Каманда FORFILES з'яўляецца ўласнай для Windows, аднак сцэнар DeleteByDatePattern павінен быць размешчаны ў тэчцы, вызначанай у вашай пераменнай Path (напрыклад, у тэчцы Windows), каб яе можна было назваць як бы роднай камандай. Пасля гэтага вы зможаце стварыць запланаванае заданне, якое ўяўляе сабой альбо асобную каманду (калі вам трэба выдаліць толькі з аднаго месца), альбо пакетны файл (калі вам трэба выдаліць з некалькіх месцаў), які працуе штодня, штотыдзень, штомесяц ці калі заўгодна.

Яшчэ адна рэч, якую вы можаце ўсталяваць і забыць.

Спасылкі

Спампаваць сцэнар "Выдаліць па даце" з Sysadmin Geek