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.