मुखपृष्ठ » कैसे » पुरानी लॉग फ़ाइलों को हटाने की प्रक्रिया को स्वचालित करना

    पुरानी लॉग फ़ाइलों को हटाने की प्रक्रिया को स्वचालित करना

    कई सेवाओं और कार्यक्रमों में लॉग फाइल का उत्पादन ऑडिट ट्रेल के रूप में किया जाता है जो वे कर रहे हैं, हालांकि कुछ में एक फ़ंक्शन होता है जो इन फ़ाइलों को हटा देता है क्योंकि वे अपनी उपयोगिता को रेखांकित करते हैं। नतीजतन, ये लॉग फाइलें आपके सिस्टम को खाने के स्थान पर बैठती हैं (कभी-कभी आप जितना जानते हैं उससे अधिक) और अव्यवस्थित निर्देशिकाओं को उन समयों के लिए जिन्हें आपको एक्सेस करने की आवश्यकता होती है.

    इसलिए अगर आपको इन फ़ाइलों की आवश्यकता नहीं है, तो उन्हें क्यों रखें? हम आपको दिखाने जा रहे हैं कि आप सिस्टम को अच्छा और सुव्यवस्थित रखने के लिए इन पुरानी लॉग फ़ाइलों को आसानी से कैसे हटा सकते हैं.

    बेशक, जब हम नीचे कवर कर रहे हैं, लॉग फ़ाइलों को प्रबंधित करने के लिए तुरंत उपयोगी हैं, तो आप किसी अन्य प्रकार की "एक्सपायरिंग" फ़ाइल (जैसे बैकअप) के लिए भी उसी तकनीक को लागू कर सकते हैं.

    अंतिम संशोधित तिथि के आधार पर फाइलें निकालें

    यदि आप अपनी मौजूदा लॉग फ़ाइलों को पूरी तरह से फ़ाइल की अंतिम संशोधित तिथि के आधार पर साफ़ करना चाहते हैं, तो आपको बस इतना करना है कि फ़ॉरफ़िल्स कमांड का उपयोग करें। उदाहरण के लिए:

    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 महीनों के लिए सभी लॉग फाइलें रखना। दुर्भाग्य से, विंडोज में इस प्रकार के तर्क के साथ एक देशी कमांड नहीं है लेकिन एक बैच स्क्रिप्ट के साथ हम आसानी से इस कार्य को संभाल सकते हैं.

    स्क्रिप्ट पर उपयोग टिप्पणियों में शामिल उदाहरण हैं, इसलिए यह पता लगाना बहुत आसान होना चाहिए.

    लिपी

    @EchO OFF ECHO डिलीट फ्रॉम डेट पैटर्न ECHO Written by: जेसन फॉल्कनर ECHO SysadminGeek.com ECHO। ECHO। REM डिलीट / फाइल का नाम एक तारीख के आधार पर चुनें जो फ़ाइल नामकरण पैटर्न के लिए MM और / या DD का उपयोग करता है। REM REM उपयोग: REM DeleteByDatePattern / M | / D NumberToKeep पाथ पैटर्नप्रिफ़िक्स पैटर्नपोस्टफ़िक्स [/ L | / DEL] REM / M निर्दिष्ट करता है कि उपयोग किया जा रहा पैटर्न महीनों पर आधारित है। REM / D निर्दिष्ट करता है कि उपयोग किया जा रहा पैटर्न दिनों पर आधारित है। REM नंबरटॉइप रेम वर्तमान में रखने के लिए महीनों (/ 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" बनाम? ??। लॉग / DEL REM वर्तमान और पिछले दो महीनों को छोड़कर सभी IIS लॉग फ़ाइलों (Windows Server 2003) को हटाता है। REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM डी से सभी ज़िप फ़ाइलों को हटाता है: बैकअप फ़ोल्डर में वर्तमान सप्ताह को छोड़कर। REM फ़ाइल नाम पैटर्न ऊपर मान लिया गया है "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM, C ड्राइव पर सभी फाइलों की एक सूची प्रिंट करता है जो पैटर्न से मेल खाता है: " * -MM- * "(जहाँ MM को 01-12 से बदल दिया गया है) REM DeleteByDatePattern / D 14" C: Logs "Log - ???? .txt REM प्रिंट उन सभी पैटर्नों की सूची बनाता है, जिन्हें स्क्रिप्ट द्वारा संसाधित किया जाएगा। सेटलाइट सक्षम करें EnableDelayedExpansion REM अपनी Windows दिनांक / समय सेटिंग्स को 'DayOfWeek M / D / YYYY' प्रारूप में सेट किया गया है। REM यदि आपका प्रारूप अलग है, तो आपको नीचे दिए गए चर को बदलना होगा ताकि वे संरेखित हों। For / F "tokens = 1,2,3,4 delims = /" %% A IN ('DATE / T') DO (SET महीना = %% B SET दिन = %% C SET वर्ष = %% D) IF / I % 1 == / M (SET Keep =% महीना% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Max = 31 REM कार्य करना) पिछले महीने के अधिकतम दिनों में से। SET / A PreMMonth =% महीना% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM लीप वर्ष ... और अधिक आवश्यकतानुसार जोड़ें। IF / I% वर्ष% EQUMonth = 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! Prevonth! EQU 11 SET Max = 30) SET करेंट =% रखें% SET / A रखें =% रखें% -% 2 + 1 REM निकाले जाने वाली सीमा का निर्धारण करें। SET / A RemoveHighStart =% वर्तमान% + 1 IF / I%% LSS 1 रखें (SET RemoveLow = 0 SET / A RemoveHighEnd =% रखें% +% अधिकतम% -1) ELSE (SET / A RemoveLow =% रखें% १) SET RemoveHighEnd =% Max%) सभी को कम रेंज की तुलना में REM प्रोसेस करें। For / L %% Z IN (1,1,% RemoveLow%) DO CALL: प्रक्रिया %% Z% 3% 4% 5% 6 REM प्रक्रिया सभी उच्च श्रेणी से अधिक है। For / L %% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) DO CALL: प्रक्रिया %% Z% 3% 4% 5% 6% 6 अंतिम वर्ष: प्रक्रिया सेट कुंजी =% 1 सेट कुंजी =% कुंजी: ~ -2% सेट लक्ष्य = "% ~ 2% ~ 3% कुंजी %% ~ 4" ECHO लक्ष्य पैटर्न:% लक्ष्य% IF / I % 5 == / L DIR% लक्ष्य% / B / S IF / I % 5 == / DEL DEL / F / S / Q% लक्ष्य% GOTO समाप्ति: अंत

    प्रक्रिया को स्वचालित करना

    FORFILES कमांड विंडोज के मूल निवासी है, हालांकि DeleteByDatePattern स्क्रिप्ट को आपके पाथ वेरिएबल (जैसे कि आपका विंडोज फोल्डर) में परिभाषित फ़ोल्डर में रखा जाना चाहिए, इसलिए इसे एक देशी कमांड के रूप में कहा जा सकता है। एक बार यह पूरा हो जाने के बाद, आप एक निर्धारित कार्य बना सकते हैं जो या तो एक एकल कमांड है (यदि आपको केवल एक स्थान से हटाने की आवश्यकता है) या एक बैच फ़ाइल (यदि आपको कई स्थानों से हटाने की आवश्यकता है) जो दैनिक, साप्ताहिक, मासिक चलती है या जब भी.

    एक और चीज आप सेट कर सकते हैं और भूल सकते हैं.

    लिंक

    Sysadmin Geek से तारीख पैटर्न स्क्रिप्ट हटाकर डाउनलोड करें