Beranda » bagaimana » Mengotomatiskan Proses Menghapus File Log Lama

    Mengotomatiskan Proses Menghapus File Log Lama

    Banyak layanan dan program di luar sana menghasilkan file log sebagai jejak audit untuk semua yang mereka lakukan, namun beberapa memiliki fungsi yang menghapus file-file ini karena mereka hidup lebih lama dari kegunaannya. Akibatnya, file-file log ini berada di sistem Anda memakan ruang (kadang-kadang lebih dari yang Anda tahu) dan mengacaukan direktori saat Anda perlu mengaksesnya.

    Jadi, jika Anda tidak membutuhkan file-file ini, mengapa menyimpannya? Kami akan menunjukkan kepada Anda bagaimana cara menghapus file log lama ini agar sistem Anda tetap bagus dan rapi.

    Tentu saja, sementara kami membahas di bawah ini segera berguna untuk mengelola file log, Anda juga dapat menerapkan teknik yang sama untuk semua jenis file "kadaluwarsa" lainnya (seperti cadangan).

    Hapus File Berdasarkan Tanggal Modifikasi Terakhir

    Jika Anda ingin menghapus file log yang ada hanya berdasarkan tanggal modifikasi terakhir file, yang harus 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 menghapus semua file dari folder "C: LogFiles", dan semua sub-folder yang belum dimodifikasi dalam minggu terakhir.

    Perintah FORFILES cukup fleksibel dengan pola pencarian dan fungsi tanggal. Misalnya, sebagai pengganti angka, Anda dapat memasukkan tanggal seperti '-1/13/2010' untuk menghapus file yang terakhir diubah sebelum tanggal yang ditentukan.

    Untuk mendapatkan semua detail tentang apa yang dapat FORFILES lakukan, lihat bantuan online menggunakan perintah berikut dari command prompt:

    FORFILES /?

    Hapus File Berdasarkan Pola Tanggal dalam Nama File

    Banyak aplikasi dan layanan menghasilkan file log berdasarkan pola tanggal untuk memiliki satu file log per hari (mis. Log100113.txt, Backup-2010-01-13.zip, dll.). Untuk jenis file ini, lebih baik untuk menghapus berdasarkan tanggal file yang dimasukkan ke dalam nama file daripada tanggal modifikasi terakhir. Ini berguna untuk skenario seperti menyimpan semua file log selama 3 bulan terakhir. Sayangnya, Windows tidak memiliki perintah asli dengan jenis logika ini tetapi dengan skrip batch kami dapat dengan mudah menangani tugas ini.

    Ada beberapa contoh yang disertakan dalam komentar penggunaan pada skrip, jadi seharusnya cukup mudah untuk mencari tahu.

    Naskah

    @ECHO OFF ECHO Hapus Dengan Pola Tanggal ECHO Ditulis oleh: Jason Faulkner ECHO SysadminGeek.com ECHO. GEMA. Hapus REM / Pilih file berdasarkan tanggal yang menggunakan MM dan / atau DD untuk pola penamaan file. Penggunaan REM REM: REM DeleteByDatePattern / M | / D NumberToKeep Path PatternPrefix PatternPostfix [/ L | / DEL] REM / M Menentukan pola yang digunakan berdasarkan bulan. REM / D Menentukan pola yang digunakan berdasarkan hari. REM NumberToKeep REM Jumlah bulan (/ M) atau hari (/ D) untuk disimpan, termasuk saat ini. REM Misalnya, memasukkan 1 menyimpan hanya bulan / hari saat ini dan 6 akan menjaga minus saat ini. 5. Jalur REM Lokasi root untuk mencari. Subdirektori akan dicari. REM PatternPrefix REM Pola pencarian file ditempatkan sebelum bulan / hari ketika membangun string pencarian. REM PatternPostfix REM Pola pencarian file ditempatkan setelah bulan / hari ketika membangun string pencarian. REM / L (opsional) Daftar semua file yang cocok dengan pola, tetapi tidak menghapusnya. REM / DEL (opsional) Menghapus semua file yang cocok dengan pola. REM REM Contoh: REM DeleteByDatePattern / M 3 "% WinDir% system32LogFiles" ex ?? ??. log / DEL REM Menghapus semua file log IIS (Windows Server 2003) kecuali untuk dua bulan saat ini dan sebelumnya. REM DeleteByDatePattern / D 7 "D: Backup" * - ???? - ?? - .zip / DEL REM Menghapus semua file zip dari D: folder Cadangan kecuali untuk minggu ini. REM Pola nama file yang diasumsikan di atas adalah "* -YYYY-MM-DD.zip" REM DeleteByDatePattern / M 0 "C:" * () * / L REM Mencetak daftar semua file pada drive C yang cocok dengan pola: " * -MM- * "(di mana MM diganti dengan 01-12) REM DeleteByDatePattern / D 14" C: Logs "Log - ???? .txt REM Mencetak daftar semua pola yang akan diproses oleh skrip. SETLOCAL EnableExtensions EnableDelayedExpansion REM Mengasumsikan pengaturan Windows Date / Time Anda diatur ke format 'DayOfWeek M / D / YYYY'. REM Jika format Anda berbeda, Anda perlu mengubah variabel di bawah ini agar selaras. UNTUK / F "token = 1,2,3,4 batas = /" %% A IN ('DATE / T') LAKUKAN (SET Bulan = %% B SET Hari = %% C SET Tahun = %% D) JIKA / I % 1 == / M (SET Keep =% Bulan% SET Max = 12) IF / I % 1 == / D (SET Keep =% Day% SET Max = 31 REM Bekerja off dari hari maks bulan sebelumnya. SET / A PrevMonth =% Bulan% -1 JIKA! PrevMonth! EQU 2 (SET Max = 28 REM Tahun kabisat ... tambahkan lebih banyak sesuai kebutuhan. JIKA / I% Tahun% EQU 2012 SET Max = 29 IF / I% Tahun% 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 Tentukan kisaran yang akan dihapus. SET / A RemoveHighStart =% Saat Ini% + 1 IF / I% Keep% LSS 1 (SET RemoveLow = 0 SET / A RemoveHighEnd =% Keep% +% Max% -1) ELSE (SET / A RemoveLow =% Keep% -1 SET RemoveHighEnd =% Max%) REM Proses semua kurang dari kisaran rendah. UNTUK / L %% Z IN (1,1,% RemoveLow%) DO CALL: Process %% Z% 3% 4% 5% 6 REM Proses semua lebih besar dari kisaran tinggi. UNTUK / L %% Z IN (% RemoveHighMulailah%, 1,% RemoveHighEnd%) LAKUKAN: Proses %% Z% 3% 4% 5% 6 GOTO ENDLOCAL Akhir: Proses SET Kunci = 0% 1 SET Kunci =% Kunci: ~ -2% SET Target = "% ~ 2% ~ 3% Key %% ~ 4" Pola Target ECHO:% Target% IF / I % 5 == / L DIR% Target% / B / S IF / I % 5 == / DEL DEL / F / S / Q% Target% GOTO Akhir: Akhir

    Mengotomatiskan Proses

    Perintah FORFILES adalah asli untuk Windows, namun skrip DeleteByDatePattern harus ditempatkan di folder yang ditentukan dalam variabel Path Anda (seperti folder Windows Anda) sehingga dapat dipanggil seolah-olah itu adalah perintah asli. Setelah ini selesai, Anda dapat membuat tugas terjadwal yang merupakan perintah tunggal (jika Anda hanya perlu menghapus dari satu lokasi) atau file batch (jika Anda perlu menghapus dari beberapa lokasi) yang berjalan harian, mingguan, bulanan atau kapan saja.

    Satu hal lagi yang bisa Anda atur dan lupakan.

    Tautan

    Unduh skrip Delete By Date Pattern dari Sysadmin Geek