أتمتة عملية حذف ملفات السجل القديمة
العديد من الخدمات والبرامج هناك تنتج ملفات السجل كمسار التدقيق لكل ما يقومون به ، ولكن القليل منهم لديهم وظيفة تقوم بإزالة هذه الملفات لأنها تعمر فائدتها. ونتيجة لذلك ، فإن ملفات السجل هذه تجلس على نظامك لتتناول مساحة (أحيانًا أكثر مما تعرف) ودلائل تشوش عن تلك الأوقات التي تحتاج إليها للوصول إليها.
لذلك إذا لم تكن بحاجة إلى هذه الملفات ، فلماذا تحتفظ بها؟ سنوضح لك كيفية إزالة ملفات السجل القديمة هذه بسهولة للحفاظ على نظامك لطيف ومرتب.
بالطبع ، بينما نحن نغطي أدناه مفيدة على الفور لإدارة ملفات السجل ، يمكنك أيضًا تطبيق نفس الأساليب على أي نوع آخر من الملفات "المنتهية الصلاحية" (مثل النسخ الاحتياطية).
إزالة الملفات بناء على تاريخ التعديل الأخير
إذا كنت ترغب في مسح ملفات السجل الموجودة الخاصة بك فقط على تاريخ آخر تعديل للملف ، فكل ما عليك فعله هو استخدام أمر FORFILES. فمثلا:
FORFILES / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / QPATH"
يقوم الأمر أعلاه بحذف جميع الملفات من مجلد "C: LogFiles" ، وجميع المجلدات الفرعية التي لم يتم تعديلها في الأسبوع الماضي.
الأمر FORFILES مرن للغاية مع وظائف نمط البحث والتاريخ. على سبيل المثال ، بدلاً من رقم ، يمكنك إدخال تاريخ مثل "-1/13/2010" لحذف الملفات آخر تعديل قبل التاريخ المحدد.
للحصول على كافة التفاصيل حول ما يمكن لـ FORFILES القيام به ، قم بعرض التعليمات عبر الإنترنت باستخدام الأمر التالي من موجه الأوامر:
الملفات /?
إزالة الملفات بناء على نمط التاريخ في اسم الملف
تنتج العديد من التطبيقات والخدمات ملفات السجل استناداً إلى نمط تاريخ لجعل ملف سجل واحد لكل يوم (على سبيل المثال ، Log100113.txt ، Backup-2010-01-13.zip ، وما إلى ذلك). بالنسبة إلى هذه الأنواع من الملفات ، من الأفضل حذفها استنادًا إلى تاريخ الملف المدمج في اسم الملف بدلاً من تاريخ التعديل الأخير. هذا مفيد لسيناريوهات مثل الاحتفاظ بجميع ملفات السجل للأشهر الثلاثة الماضية. لسوء الحظ ، ليس لدى Windows أمر أصلي مع هذا النوع من المنطق ولكن مع البرنامج النصي الدفعي يمكننا بسهولة معالجة هذه المهمة.
هناك أمثلة مدرجة في تعليقات الاستخدام على النص البرمجي ، لذلك يجب أن يكون من السهل معرفة ذلك.
النص
ECHO OFF ECHO Delete By Date Pattern ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. صدى صوت. REM حذف / تحديد الملفات بناءً على التاريخ الذي يستخدم MM و / أو DD لأنماط تسمية الملفات. REM REM Usage: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M يحدد أن النمط المستخدم يستخدم على أساس الأشهر. REM / D ﺗﻌﯾﯾن أن اﻟﻧﻣط اﻟﻣﺳﺗﺧدم ﯾﺳﺗﻧد إﻟﯽ اﻷﯾﺎم. REM NumberToKeep REM عدد الأشهر (/ M) أو الأيام (/ D) للإبقاء ، بما في ذلك الحالي. REM ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل ، ﻳﺤﺘﻔ entering اﻟﺪﺧﻮل 1 ﻓﻘﻂ ﺑﺎﻟﺸﻬﺮ / اﻟﻴﻮم اﻟﺤﺎﻟﻲ و 6 ﻳﺤﺘﻔ keep ﺑﺎﻟﻤﻌﻄﻴﺎت اﻟﺤﺎﻟﻴﺔ .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: النسخ الاحتياطي" * - ؟؟؟؟ - ؟؟ - .zip / DEL REM يحذف جميع الملفات المضغوطة من 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 إذا كان التنسيق الخاص بك مختلفًا ، فستحتاج إلى تغيير المتغيرات أدناه حتى تتماشى. FOR / F "tokens = 1،2،3،4 delims = /" ٪٪ A IN ('DATE / T') DO (SET Month = ٪٪ B SET Day = ٪٪ C SET Year = ٪٪ D) IF / I ٪ 1 == / M (SET Keep =٪ Month٪ SET Max = 12) IF / I ٪ 1 == / D (SET Keep =٪ Day٪ SET Max = 31 REM Working خارج الحد الأقصى لأيام الشهر السابق. SET / A PrevMonth =٪ Month٪ -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Leap years… أضف المزيد حسب الحاجة. IF / I٪ Year٪ EQU 2012 SET Max = 29 IF / I٪ Year 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 =٪ Current٪ + 1 IF / I٪ الاحتفاظ٪ LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =٪ الاحتفاظ٪ +٪ Max٪ -1) ELSE (SET / A RemoveLow =٪ الاحتفاظ٪ -1 SET RemoveHighEnd =٪ Max٪) REM Process all less than the low range. FOR / L ٪٪ Z IN (1،1،٪ RemoveLow٪) DO CALL: Process ٪٪ Z٪ 3٪ 4٪ 5٪ 6 REM Process all greater than the high range. FOR / L ٪٪ Z IN (٪ RemoveHighStart٪، 1،٪ RemoveHighEnd٪) DO CALL: Process ٪٪ Z٪ 3٪ 4٪ 5٪ 6 ENDLOCAL GOTO End: Process SET Key = 0٪ 1 SET Key =٪ Key: ~ -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: End
أتمتة العملية
الأمر FORFILES أصلي إلى Windows ، ومع ذلك يجب وضع البرنامج النصي DeleteByDatePattern في مجلد محدد في متغير المسار الخاص بك (مثل مجلد Windows الخاص بك) بحيث يمكن استدعائه كما لو كان أمرًا أصليًا. بمجرد الانتهاء من ذلك ، يمكنك إنشاء مهمة مجدولة والتي تكون إما أمرًا واحدًا (إذا كنت تحتاج فقط إلى الحذف من موقع واحد) أو ملف دفعي (إذا كنت تريد الحذف من مواقع متعددة) والتي تعمل يوميًا وأسبوعيًا وشهريًا أو في أي وقت.
شيء آخر يمكنك ضبطه ونسيانه.
الروابط
قم بتنزيل برنامج Delete By Date Pattern script من Sysadmin Geek