Eski Günlük Dosyalarını Silme İşlemini Otomatikleştirme
Dışarıdaki birçok hizmet ve program, günlük dosyalarını, yaptıkları her şey için bir denetim izi olarak oluşturur, ancak çok azı, bu dosyaları, kullanımlarını uzattıklarında kaldıran bir işleve sahiptir. Sonuç olarak, bu günlük dosyaları sisteminize oturup yer kaplar (bazen bildiğinizden daha fazla) ve bunlara erişmeniz gereken zamanlar için karışıklık yaratır.
Peki bu dosyalara ihtiyacınız yoksa neden saklayın? Sisteminizi güzel ve düzenli tutmak için bu eski günlük dosyalarını kolayca nasıl kaldıracağınızı göstereceğiz..
Tabii ki, aşağıda ele aldığımız bilgiler günlük dosyalarını yönetmek için hemen kullanışlıdır, aynı teknikleri başka herhangi bir "süresi dolmuş" dosyaya da (yedekler gibi) uygulayabilirsiniz..
Son Değiştirilme Tarihine Göre Dosyaları Kaldır
Mevcut günlük dosyalarınızı yalnızca dosyanın son değiştirilme tarihine göre silmek istiyorsanız, tek yapmanız gereken FORFILES komutunu kullanmaktır. Örneğin:
FORFILES / P “C: LogFiles” / S / D -7 / C “CMD / C DEL / F / Q @PATH”
Yukarıdaki komut tüm dosyaları “C: LogFiles” klasöründen ve geçen hafta değiştirilmeyen tüm alt klasörlerden siler..
FORFILES komutu, arama düzeni ve tarih işlevleriyle oldukça esnektir. Örneğin, bir sayı yerine, belirtilen tarihten önce en son değiştirilen dosyaları silmek için '-1/13/2010' gibi bir tarih girebilirsiniz..
FORFILES'in yapabilecekleriyle ilgili tüm ayrıntıları öğrenmek için, komut isteminde aşağıdaki komutu kullanarak çevrimiçi yardımı görüntüleyin:
FORFILES /?
Dosya Adındaki Tarih Modeline Göre Dosyaları Kaldırma
Birçok uygulama ve servis, bir günlük dosyasına göre günlük bir dosyaya göre günlük dosyaları oluşturur (ör. Log100113.txt, Backup-2010-01-13.zip, vb.). Bu tür dosyalar için, son değiştirilme tarihinden ziyade, dosya adına dahil edilen dosyanın tarihine göre silmek tercih edilir. Bu, tüm 3 günlük dosyaları günlük tutmak gibi senaryolar için kullanışlıdır. Ne yazık ki, Windows'un bu tür bir mantıkla yerel bir komutu yoktur, ancak toplu komut dosyasıyla bu görevi kolayca halledebiliriz.
Senaryoda kullanım yorumlarında yer alan örnekler var, bu yüzden anlamak oldukça kolay olmalı.
Senaryo
@ECHO OFF ECHO Tarih Desenine Göre Sil ECHO Yazan: Jason Faulkner ECHO SysadminGeek.com ECHO. EKO. REM Dosya adlandırma desenleri için MM ve / veya DD kullanan bir tarihe göre dosyaları sil / seç. REM REM Kullanımı: REM DeleteByDatePattern / M | / D NumberToKeep Yolu PatternPrefix PatternPostfix [/ L | / DEL] REM / M Kullanılan deseni aylara göre belirtir. REM / D Kullanılan deseni günlere göre belirtir. REM NumberToKeep REM Akım dahil olmak üzere saklanacak ay (/ M) veya gün (/ D) sayısını gösterir. REM Örneğin, 1 girmek yalnızca geçerli ayı / günü korur ve 6 geçerli eksi 5'i tutar. REM Yolu Aranacak kök konum. Alt dizinler aranacaktır. REM PatternPrefix REM Arama dizesini oluştururken ay / gün öncesine yerleştirilen dosya arama düzeni. REM PatternPostfix REM Arama dizesini oluştururken ay / gün sonra yerleştirilen dosya arama düzeni. REM / L (isteğe bağlı) Desene uyan tüm dosyaları listeler, ancak bunları silmez. REM / DEL (isteğe bağlı) Desene uyan tüm dosyaları siler. REM REM Örnekleri: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" örn. • log / DEL REM Geçerli ve önceki iki ay dışındaki tüm IIS günlük dosyalarını (Windows Server 2003) siler. REM DeleteByDatePattern / D 7 "D: Yedekleme" * - ???? - ?? - .zip / DEL REM Geçerli zip hariç tüm zip dosyalarını D: Yedekleme klasöründen siler. REM Yukarıda varsayılan dosya adı örneği: "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Desene uyan C sürücüsündeki tüm dosyaların bir listesini yazdırır: " * -MM- * "(MM 01-12 ile değiştirilir) REM DeleteByDatePattern / D 14" C: Günlükleri "Log - ???? .txt REM Komut dosyası tarafından işlenecek tüm kalıpların listesini yazdırır. SETLOCAL EnableExtensions EnableDelayedExpansion REM Windows Tarih / Saat ayarlarınızın 'DayOfWeek M / D / YYYY' biçiminde olduğunu varsayar. REM Biçiminiz farklıysa, aşağıdaki değişkenleri hizalamanız için değiştirmeniz gerekecektir. FOR / F "belirteçleri = 1,2,3,4 = =" "%% A IN ('TARİH / T') DO 'yu alır (SET Ay =%% B SET Gün =%% C SET Yıl =%% D) IF / I % 1 == / M (SET Keep =% Ay% SET Maksimum = 12) EĞER / I % 1 == / D (SET Keep =% Gün% SET Maksimum = 31 REM Çalışıyor önceki ayın maksimum günleri kapalı SET / A PrevMonth =% Ay% -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM Artık yıl… gerektiği gibi ekleyin. IF / I% Yıl% EQU 2012 SET Max = 29 IF / I% Yıl% EQU 2016 SET Maksimum = 29) IF / I! Önceki / Eş! EQU 4 SET Maksimum = 30 / ŞF / I! PrevMonth! EQU 6 SET / ZARF = 30 IF / I! / I! ÖncekiSayfa! EQU 11 SET Maks = 30) SET Akım =% Keep% SET / A Keep =% Keep% -% 2 + 1 REM Kaldırılacak aralığı belirleyin. SET / A RemoveHighStart =% Geçerli% + 1 IF / I%% LSS 1'i Koru (SET RemoveLow = 0 SET / A RemoveHighEnd =%% +% Max% -1 Sakla) ELSE (SET / A RemoveLow =% Keep% -1 SET RemoveHighEnd =% Max%) REM Hepsi düşük aralıktan daha az işlenir. FOR / L %% Z IN (1,1,% RemoveLow%) ÇAĞRI: İşlem %% Z% 3% 4% 5% 5 6 REM Proses yüksek aralıktan daha büyük. FOR / L %% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) ÇAĞRI: İşlem %% Z% 3% 4% 5% 5% 6 ENDLOCAL GOTO Bitiş: İşlem SET Tuşu =% 0% 1 SET Tuşu =% Anahtar: ~ -2% SET Hedef = "% ~ 2% ~ 3% Anahtar %% ~ 4" ECHO Hedef Deseni:% Hedef% IF / I % 5 == / L DIR% Hedef% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Hedef% GOTO Bitiş: Bitiş
Süreci otomatikleştirmek
FORFILES komutu Windows'a özgüdür, ancak DeleteByDatePattern betiği, Path değişkeninizde tanımlanmış bir klasöre yerleştirilmelidir (Windows klasörünüz gibi), böylece yerel bir komut gibi çağrılabilir. Bunu yaptıktan sonra, günlük, haftalık, aylık olarak çalışan tek bir komut (yalnızca tek bir konumdan silmeniz gerekirse) veya bir toplu iş dosyası (birden çok konumdan silmeniz gerekirse) oluşturabilirsiniz. ya da ne zaman.
Ayarlayabileceğiniz ve unutabileceğiniz bir şey daha.
Bağlantılar
Sysadmin Geek gelen Tarihe göre Sil komut dosyasını indir