Menghapus File Yang Berusia Seminggu Pada Linux dan Windows


Kadang-kadang ketika kita menjalankan sebuah database Oracle, menjadi perlu untuk mengotomatisasi beberapa tugas seperti membersihkan user log yang bisa membengkak ukuranya seiring waktu. Berikut ini beberapa penjelasan tentang contoh otomatisasi penghapusan file dengan memanfaatkan crontab linux dan schedular pada windows

1. LINUX

Dalam linux seperti Centos OS cukup sederhana untuk menghapus file yang lebih tua dari ‘x’ hari, hanya dengan menjalankan:

find /u2/test -name “*.log” -mtime +7 -exec rm {} \;

Dalam UNIX seperti Solaris OS’es rasa itu cukup sederhana untuk menghapus file lebih tua dari ‘x’ hari hanya dengan menjalankan:

00 2 * * 5 find /u2/stest -name “*.log” -ctime +7 -exec rm {} \; >/dev/null 2>&1

Ini akan menghapus. log file yang lebih tua dari 7 hari pada setiap Jumat di 02:00

2. WINDOWS

Untuk Windows ini agak sedikit rumit. Meskipun windows memiliki fungsi scripting kuat melalui script batch. Ia tidak menyediakan utilitas yang baik untuk menemukan file yang lebih tua dari x hari. Ada forfiles utilitas tetapi itu tidak datang secara default di semua versi windows.

Menggunakan forfiles untuk menghapus file yang lebih tua dari 7 hari.

FORFILES /p C:\myfolder /s /m *.dbf /d -7 /c “CMD /C del /Q /F @FILE

VBSCRIPT METHOD

Hal terbaik untuk dilakukan adalah melakukannya melalui script VB kecil dan memanggil vbscript melalui file batch. Kedengarannya rumit, tapi sangat mudah. Berikut adalah langkah-demi-langkah untuk menghapus file lebih tua dari “x” hari melalui sebuah vbscript.

1. Buat vbscript. Cukup salin kode di bawah ini dan menyediakan parameter hari yang dinginkan dan lokasi folder log arsip

# please note this will delete all files in that folder,older than 7days.

iDaysOld = 7
strPath = “F:\OraArchives”

Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set objFolder = objFSO.GetFolder(strPath)
Set colSubfolders = objFolder.Subfolders
Set colFiles = objFolder.Files

For Each objFile in colFiles
If objFile.DateLastModified < (Date() – iDaysOld) Then
‘MsgBox “Dir: ” & objFolder.Name & vbCrLf & “File: ” & objFile.Name
objFile.Delete
End If
Next

For Each objSubfolder in colSubfolders
Set colFiles = objSubfolder.Files
For Each objFile in colFiles
If objFile.DateLastModified < (Date() – iDaysOld) Then
‘MsgBox “Dir: ” & objSubfolder.Name & vbCrLf & “File: ” & objFile.Name
objFile.Delete
End If
Next
Next

2. Simpan skrip ini sebagai DelArchive.vbs

3.  Buat file batch dengan mengklik kanan pada desktop dan membuat file teks baru dan mengganti nama file dengan ekstensi ‘ .bat’ dan paste kode di bawah ini.

call “C:\Documents and Settings\Desktop\DelArchive.vbs”

Sekarang jalankan file batch dan akan melaksanakan vbscript dan itu akan membersihkan file yang lebih tua dari 7 hari. Anda dapat menempatkan file batch in scheduler tugas dan menjalankannya setiap hari minggu sesuai dengan kenyamanan Anda.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s