דף הבית » איך ל » אוטומציה של תהליך מחיקת קבצי יומן ישנים

    אוטומציה של תהליך מחיקת קבצי יומן ישנים

    שירותים ותוכניות רבות שם לייצר קבצי יומן כשביל ביקורת על כל מה שהם עושים, אבל כמה יש פונקציה אשר מסיר קבצים אלה כפי שהם לתרום את התועלת שלהם. כתוצאה מכך, קבצים אלה יומן לשבת על המערכת שלך לאכול את החלל (לפעמים יותר ממה שאתה יודע) וספריות עמוס עבור אותם פעמים אתה צריך לגשת אליהם.

    אז אם אתה לא צריך את הקבצים האלה, למה לשמור אותם? אנחנו הולכים להראות לך איך בקלות להסיר את קבצי היומן הישן כדי לשמור על מערכת נחמד ומסודר.

    כמובן, בעוד שאנו מכסים להלן הם מיד שימושי לניהול קבצי יומן, אתה יכול גם ליישם את אותן טכניקות לכל סוג אחר של "שפוגע" קובץ (כגון גיבויים).

    הסרת קבצים בהתבסס על תאריך שינוי אחרון

    אם ברצונך לנקות את קובצי היומן הקיימים שלך רק על סמך תאריך השינוי האחרון של הקובץ, כל שעליך לעשות הוא להשתמש בפקודה FORFILES. לדוגמה:

    פורפילס / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / Q @PATH"

    הפקודה הנ"ל תמחק את כל הקבצים מהתיקיה "C: LogFiles", וכל תיקיות המשנה שלא שונו בשבוע האחרון.

    הפקודה FORFILES היא די גמישה עם דפוס החיפוש ותאריכי התאריך. לדוגמה, במקום מספר, באפשרותך להזין תאריך כגון '-13 / 2010' למחיקת קבצים שהשתנו לאחרונה לפני התאריך שצוין.

    כדי לקבל את כל הפרטים על מה ש- FORFILES יכולים לעשות, עיין בעזרה המקוונת באמצעות הפקודה הבאה בשורת הפקודה:

    FORFILES /?

    הסרת קבצים בהתבסס על תבנית תאריך בשם הקובץ

    יישומים ושירותים רבים מייצרים קובצי יומן המבוססים על תבנית תאריך כמו קובץ יומן אחד ליום (כלומר Log100113.txt, Backup 2010-01-13.zip וכו '). עבור סוגי קבצים אלה, עדיף למחוק על סמך תאריך הקובץ המשולב בשם הקובץ ולא בתאריך האחרון. זה שימושי עבור תרחישים כגון שמירה על כל קבצי יומן במשך 3 החודשים האחרונים. למרבה הצער, ל- Windows אין פקודה מקומית עם סוג זה של לוגיקה, אך עם סקריפט אצווה אנו יכולים לטפל בקלות במשימה זו.

    יש דוגמאות הכלולות הערות השימוש על התסריט, ולכן זה צריך להיות די קל להבין.

    התסריט

    @ אקו OFF ECHO מחק לפי תאריך תבנית ECHO נכתב על ידי: ג 'ייסון Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM מחק / בחר קבצים בהתבסס על תאריך אשר מנצל MM ו / או DD עבור דפוסי שמות שמות. REM REM שימוש: REM DeleteByDatePattern / M | / D NumberToKeep נתיב תבניתPreffix PatternPostfix [/ L / DEL] REM / M מציין את תבנית בשימוש מבוסס על חודשים. REM / D מציין שהתבנית הנמצאת בשימוש מבוססת על ימים. מספר חודשים (/ M) או ימים (/ D) לשמור, כולל הנוכחי. REM לדוגמה, הזנת 1 שומרת רק את החודש / יום הנוכחי ו -6 תשמור על מינוס הנוכחי 5. נתיב REM מיקום השורש לחיפוש. תתבצע חיפוש בתיקיות משנה. REM PatternPrefix REM תבנית החיפוש של הקובץ מונחת לפני החודש / יום בעת בניית מחרוזת החיפוש. REM PatternPostfix REM תבנית החיפוש של הקובץ ממוקמת לאחר החודש / יום בעת בניית מחרוזת החיפוש. REM / L (אופציונלי) מפרט את כל הקבצים התואמים את התבנית, אך אינו מוחק אותם. REM / DEL (אופציונלי) מחיקת כל הקבצים התואמים את התבנית. REM REM דוגמאות: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" לשעבר ?? ?? log / DEL REM מוחק את כל קובצי היומן של IIS (Windows Server 2003) למעט בחודשיים הנוכחיים ובחודשיים הקודמים. REM DeleteByDatePattern / D 7 "D: גיבוי" * - ???? - ?? - .zip / DEL REM מחיקת כל קבצי zip מתיקיית הגיבוי D: למעט השבוע הנוכחי. REM תבנית שם הקובץ שהוזכר לעיל היא "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * (* * / L REM מדפיס רשימה של כל הקבצים בכונן C התואמים את התבנית: * -MM- * "(כאשר MM מוחלף עם 01-12) REM DeleteByDatePattern / D 14" C: יומני "התחבר - ???? .txt REM מדפיס רשימה של כל הדפוסים שיעובדו על ידי הסקריפט. SETLOCAL EnableExtensions EnableDelayedExpansion REM מניח את הגדרות תאריך / שעה של Windows מוגדרות לתבנית 'DayOfWeek M / D / YYYY'. REM אם הפורמט שלך שונה, יהיה עליך לשנות את המשתנים שלהלן כדי ליישר אותם. (= "= / D" / = ") = חודש = %% B BET = =% C CET שנה = %% D) IF / I = / M (SET שמור =% חודש% SET מקס = 12) אם / I 1 1 == / D (SET שמור =% יום% Set מקסימום = 31 REM עבודה הנחה של החודש המקסימלי לחודש הקודם SET / A PrevMonth =% חודש% -1 IF! קודם לכן EQU 2 (הגדר מקס = 28 REM שנים מעוברות ... הוסף לפי הצורך אם אני /% שנה% EQU 2012 SET מקס = 29 אם / I% שנה EQU 2016 SET מקס = 29) אם / I הקודם! EQU 4 SET מקס = 30 IF / I הקודם! / I! הקודם הקודם EQU 11 SET מקס = 30) SET זרם =% שמור% SET / A שמור =% שמור% -% 2 + 1 REM קבע את הטווח שיוסר. SET / A RemoveHighStart =% נוכחי% 1% אם% /%% שמור% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% שמור% +% Max% -1) ELSE (SET / A RemoveLow =% Keep% -1 SET RemoveHighEnd =% Max%) REM מעבדים פחות מהטווח הנמוך. עבור% L %% Z IN (1,1,% RemoveLow%) DO CALL: תהליך %% Z% 3% 4% 5% 6 REM התהליך גדול יותר מהטווח הגבוה. עבור% L%% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) DO CALL: Process %% Z% 3% 4% 5% 6 ENLOCOCAL GOTO סיום: SET Key = 0% 1 SET Key =% Key: ~% 2 SET Target = "% ~ 2% ~ 3% מפתח %% ~ 4" ECHO תבנית יעד:% Target% IF / I % 5 == / L% DIR% יעד% / B / S IF / I % 5 == / DEL DEL / F / S / Q% יעד% GOTO סוף: סוף

    אוטומציה של התהליך

    הפקודה FORFILES היא מקורית ל- Windows, אולם התסריט DeleteByDatePattern צריך להיות ממוקם בתיקייה המוגדרת במשתנה הנתיב שלך (כגון תיקיית Windows), כך שניתן לקרוא לה כאילו הייתה פקודה מקומית. ברגע שזה נעשה, אתה יכול ליצור משימה מתוזמנת שהיא גם פקודה אחת (אם אתה רק צריך למחוק ממיקום אחד) או קובץ אצווה (אם אתה צריך למחוק ממספר מיקומים) אשר פועל יומי, שבועי, חודשי או מתי.

    עוד דבר אחד אתה יכול להגדיר ולשכוח.

    קישורים

    הורד מחק לפי תאריך סקריפט תבנית מ Sysadmin חנון