Αρχική σελίδα » πως να » Αυτοματοποίηση της διαδικασίας διαγραφής παλιών αρχείων καταγραφής

    Αυτοματοποίηση της διαδικασίας διαγραφής παλιών αρχείων καταγραφής

    Πολλές υπηρεσίες και προγράμματα εκεί έξω παράγουν αρχεία καταγραφής ως μια διαδρομή ελέγχου για ό, τι κάνουν, ωστόσο λίγοι έχουν μια λειτουργία που αφαιρεί αυτά τα αρχεία καθώς ξεπερνούν τη χρησιμότητά τους. Ως αποτέλεσμα, αυτά τα αρχεία καταγραφής καθίστανται στο σύστημά σας τρώγοντας χώρο (μερικές φορές περισσότερο από ό, τι γνωρίζετε) και γεμίζοντας καταλόγους για εκείνους τους χρόνους που χρειάζεστε για να αποκτήσετε πρόσβαση.

    Έτσι εάν δεν χρειάζεστε αυτά τα αρχεία, γιατί να τα κρατήσετε; Θα σας δείξουμε πώς μπορείτε εύκολα να καταργήσετε αυτά τα παλιά αρχεία καταγραφής για να σας κρατήσουμε ωραίο και τακτοποιημένο.

    Φυσικά, ενώ καλύπτουμε τα παρακάτω είναι άμεσα χρήσιμα για τη διαχείριση αρχείων καταγραφής, μπορείτε επίσης να εφαρμόσετε τις ίδιες τεχνικές σε οποιοδήποτε άλλο τύπο αρχείου "λήξης" (όπως αντίγραφα ασφαλείας).

    Κατάργηση αρχείων με βάση την τελευταία τροποποιημένη ημερομηνία

    Εάν θέλετε να εκκαθαρίσετε τα υπάρχοντα αρχεία καταγραφής σας με βάση μόνο την τελευταία τροποποιημένη ημερομηνία του αρχείου, το μόνο που έχετε να κάνετε είναι να χρησιμοποιήσετε την εντολή 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 NumberToKeep PatternPrefix Pattern PathPath [/ L | / DEL] REM / M Ορίζει ότι το πρότυπο που χρησιμοποιείται βασίζεται σε μήνες. REM / D Καθορίζει ότι το πρότυπο που χρησιμοποιείται βασίζεται σε ημέρες. REM NumberToKeep REM Ο αριθμός μηνών (/ Μ) ή ημερών (/ 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" πρώην; 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- * "(όπου 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) Διάρκεια άλμπουμ ... προσθέστε περισσότερα ανάλογα με τις ανάγκες σας IF / I% Έτος% EQU 2012 SET Max = 29 ΕΝ / Ι%% Έτος% EQU 2016 SET Max = 29) IF / Ι! Προηγούμενος EQU 4 SET Μέγιστο = 30 IF / I Προηγούμενο! EQU 6 SET Max = 30 IF / I! / I! PrevMonth! 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 =% Διατήρηση% +% Max% -1) SET RemoveHighEnd =% Max%) REM Διαδικασία όλα λιγότερο από το χαμηλό εύρος. FOR / L %% Z IN (1,1,% RemoveLow%) ΚΛΗΣΗ: Διαδικασία %% Z% 3% 4% 5% 6 REM Διαδικασία όλα μεγαλύτερα από τα υψηλά επίπεδα. Για να ολοκληρώσετε τη διαδικασία, πατήστε το πλήκτρο SET = 0% 1 Πλήκτρο SET = Πλήκτρο% ~ -2% SET Target = "% ~ 2% ~ 3% Βασικό %% ~ 4" ECHO Target Pattern:% Target% IF / I % 5 == / L DIR% Target% / I % 5 == / DEL DEL / F / S / Q% Στόχος% GOTO Τέλος: Τέλος

    Αυτοματοποίηση της διαδικασίας

    Η εντολή FORFILES είναι εγγενής στα Windows, ωστόσο το script του DeleteByDatePattern πρέπει να τοποθετηθεί σε ένα φάκελο που ορίζεται στη μεταβλητή Path (όπως το φάκελο των Windows) ώστε να μπορεί να καλείται σαν να ήταν μια μητρική εντολή. Μόλις γίνει αυτό, μπορείτε να δημιουργήσετε μια προγραμματισμένη εργασία η οποία θα είναι είτε μία μόνο εντολή (εάν χρειάζεται μόνο να διαγράψετε από μία θέση) είτε ένα αρχείο δέσμης (εάν χρειάζεται να διαγράψετε από πολλές τοποθεσίες) το οποίο εκτελείται καθημερινά, εβδομαδιαία, μηνιαία ή οπουδήποτε.

    Ένα ακόμα πράγμα που μπορείτε να ορίσετε και να ξεχάσετε.

    Συνδέσεις

    Λήψη Διαγραφή με βάση το πρότυπο μοτίβου από το Sysadmin Geek