Laman » bagaimana untuk » Mengotomatisasi Proses Menghapus Fail Log Lama

    Mengotomatisasi Proses Menghapus Fail Log Lama

    Banyak perkhidmatan dan program di luar sana menghasilkan fail log sebagai jejak audit untuk semua yang mereka lakukan, tetapi beberapa mempunyai fungsi yang membuang fail-fail ini kerana mereka lebih banyak kegunaannya. Akibatnya, fail log ini duduk di atas sistem anda memakan ruang (kadang-kadang lebih daripada yang anda tahu) dan direktori yang berkaca-ganti untuk masa-masa yang anda perlukan untuk mengaksesnya.

    Jadi, jika anda tidak memerlukan fail ini, mengapa menyimpannya? Kami akan menunjukkan kepada anda bagaimana dengan mudah mengalih keluar fail log lama ini untuk memastikan sistem anda bagus dan kemas.

    Sudah tentu, sementara yang kita saksikan di bawah adalah berguna untuk menguruskan fail log, anda juga boleh menggunakan teknik yang sama untuk apa-apa jenis fail yang "tamat tempoh" (seperti sandaran).

    Keluarkan Fail Berdasarkan Date Modified Terakhir

    Sekiranya anda ingin membersihkan fail log sedia ada semata-mata pada tarikh diubahsuai terakhir fail, yang perlu anda lakukan adalah menggunakan perintah FORFILES. Sebagai contoh:

    FORFILES / P "C: LogFiles" / S / D -7 / C "CMD / C DEL / F / Q @PATH"

    Perintah di atas akan memadamkan semua fail dari folder "C: LogFiles", dan semua sub-folder yang tidak diubah suai pada minggu lalu.

    Perintah FORFILES cukup fleksibel dengan corak carian dan fungsi tarikh. Sebagai contoh, sebagai ganti nombor, anda boleh memasukkan tarikh seperti '-1/13/2010' untuk memadam fail yang terakhir diubah suai sebelum tarikh yang dinyatakan.

    Untuk mendapatkan semua maklumat tentang apa yang boleh dilakukan FORFILES, lihat bantuan dalam talian menggunakan arahan berikut dari arahan arahan:

    FORFILES /?

    Keluarkan Fail Berdasarkan Corak Tarikh dalam Nama Fail

    Banyak aplikasi dan perkhidmatan menghasilkan fail log berdasarkan corak tarikh untuk mempunyai satu fail log setiap hari (iaitu Log100113.txt, Backup-2010-01-13.zip, dll.). Untuk jenis fail ini, lebih baik untuk memadam berdasarkan tarikh fail yang dimasukkan ke dalam nama fail dan bukannya tarikh diubah suai yang terakhir. Ini berguna untuk senario seperti menyimpan semua fail log selama 3 bulan yang lalu. Malangnya, Windows tidak mempunyai arahan asli dengan logik jenis ini tetapi dengan skrip batch kita dapat dengan mudah mengendalikan tugas ini.

    Terdapat contoh yang termasuk dalam ulasan penggunaan pada skrip, jadi ia harus cukup mudah untuk difikirkan.

    Skrip

    @ECHO OFF ECHO Padam oleh Corak Tarikh ECHO Ditulis oleh: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Padam / Pilih fail berdasarkan tarikh yang menggunakan MM dan / atau DD untuk corak penamaan fail. REM REM Penggunaan: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Menentukan corak yang digunakan adalah berdasarkan bulan. REM / D Menentukan corak yang digunakan adalah berdasarkan hari. REM NumberToKeep REM Bilangan bulan (/ M) atau hari (/ D) untuk menyimpan, termasuk semasa. Sebagai contoh, memasuki 1 menyimpan hanya bulan / hari semasa dan 6 akan menyimpan minus semasa 5. Laluan REM Lokasi akar untuk mencari. Subdirektori akan dicari. REM PatternPrefix REM Corak carian fail diletakkan sebelum bulan / hari ketika membina rentetan carian. REM PatternPostfix REM Corak carian fail diletakkan selepas bulan / hari semasa membina rentetan carian. REM / L (pilihan) Menyenaraikan semua fail yang sepadan dengan corak, tetapi tidak memadamnya. REM / DEL (pilihan) Menghapuskan semua fail yang sepadan dengan corak. Contoh REM REM: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? ?? log / DEL REM Menghapus semua fail log IIS (Windows Server 2003) kecuali untuk dua bulan semasa dan sebelumnya. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Menghapus semua fail zip dari folder D: Backup kecuali untuk minggu semasa. REM Corak nama fail yang diasumsikan di atas ialah "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Mencetak senarai semua fail pada pemacu C yang sepadan corak: " * -MM- * "(di mana MM diganti dengan 01-12) REM DeleteByDatePattern / D 14" C: Log "Log - ???? .txt REM Mencetak senarai semua corak yang akan diproses oleh skrip. EnableExtensions SETLOCAL EnableDelayedExpansion REM Mengasaskan tetapan Tarikh / Masa Windows anda ditetapkan ke format 'DayOfWeek M / D / YYYY'. REM Jika format anda berbeza, anda perlu mengubah pembolehubah di bawah supaya mereka menyelaraskan. BAGI / F "token = 1,2,3,4 delims = /" %% A IN ('TARIKH / T') DO (Bulan SET = %% B SET Day = %% C SET Tahun = %% D) / I % 1 == / M (SET Keep =% Month% SET Max = 12) IF / I % 1 == / D SET / A PrevMonth =% Bulan% -1 JIKA! PrevMonth! EQU 2 (SET Max = 28 REM Leap years ... tambah lebih banyak seperti yang diperlukan. IQ / I% Year% EQU 2016 SET Max = 29) IF / I! PrevMonth! EQU 4 SET Max = 30 IF / I! PrevMonth! EQU 6 SET Max = / I! PrevMonth! EQU 11 SET Max = 30) SET Current =% Keep% SET / A Keep =% Keep% -% 2 + 1 REM Tentukan rentang yang akan dikeluarkan. SET / A RemoveHighStart =% Current% + 1 IF / I% Keep% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Keep% +% Max% -1) ELSE (SET / A RemoveLow = SET RemoveHighEnd =% Max%) REM Proses semua kurang dari julat rendah. FOR / L %% Z IN (1,1,% RemoveLow%) DO CALL: Process %% Z% 3% 4% 5% 6 REM Process all greater than the high range. BAGI / L %% Z IN (% RemoveHighStart%, 1,% RemoveHighEnd%) DO CALL: Process %% Z% 3% 4% 5% 6 ENDOTOCAL GOTO End: Process Key SET = 0% 1 Key SET = ~ -2% SET Sasaran = "% ~ 2% ~ 3% Kunci %% ~ 4" Corak Sasaran ECHO:% Sasaran% JIKA / I % 5 == / L DIR% Target% / B / / I % 5 == / DEL DEL / F / S / Q% Target% GOTO Tamat: Tamat

    Mengemaskini Proses

    Perintah FORFILES berasal dari Windows, namun skrip DeleteByDatePattern perlu diletakkan dalam folder yang ditakrifkan dalam pembolehubah Path anda (seperti folder Windows anda) supaya ia boleh dipanggil seolah-olah ia merupakan arahan asal. Apabila ini selesai, anda boleh membuat tugas berjadual yang sama ada satu arahan (jika anda hanya perlu memadam dari satu lokasi) atau fail kumpulan (jika anda perlu memadam dari pelbagai lokasi) yang berjalan setiap hari, mingguan, bulanan atau bila-bila masa.

    Satu lagi perkara yang boleh anda tetapkan dan lupa.

    Pautan

    Unduh Padam Mengikut Skrip Corak Tarikh dari Sysadmin Geek