Forum
Merhabalar, Sql veritabanı yedeklerini düzenli olarak bir dizine alıyoruz ve bu dizinde sadece son bir haftanın yedeklerinin kalmasını istiyorum.
Şu an eski dosyaları manuel olarak silmek zorunda kalıyoruz, son 7 yedeğin kalmasını nasıl sağlayabilirim.
Merhaba,
Yedi gün için farklı isimlerde backuplama ayarlayın ve hafta döndüğü zaman üzerine yazacak şekilde yararların.
İyi çalışmalar.
Merhaba, Son 30 gün lazım olursa 🙂
Aşağıdaki vbs kodu, tanımlanan dizindeki, tanımlanan günden daha eski(dosya değişiklik tarihi) dosyaları,
alt dizinler dahil silmektedir.
'----------------
SonKacGun = 7
Yedekdizini = "C:\YedekDizinim"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDizin = objFSO.GetFolder(Yedekdizini)
Set colaltdizin = objDizin.Subfolders
Set colDizin = objDizin.Files
For Each objFile in colDizin
If objFile.DateLastModified < (Date() - SonKacGun) Then
objFile.Delete
End If
Next
For Each objSubfolder in colaltdizin
Set colDizin = objSubfolder.Files
For Each objFile in colDizin
If objFile.DateLastModified < (Date() - SonKacGun) Then
objFile.Delete
End If
Next
Next
Teorik olarak yedekler şu şekilde depolanmalıdır.
- Günlük yedek 1 Hafta (7 gün)
- Haftalık yedek 1 Ay (4 hafta)
- Aylıklar 1 Yıl (12 ay)
- Yıllıklar 3 yada 5 yıl.
Yapmak istediğiniz olay bana biraz tehlikeli geldi. Orhan Beyimde dediği gibi örneğin Ocak 2009 da bir yedeğe dönmeniz gerektiğinde ne yapacaksınız?
Merhaba, Son 30 gün lazım olursa 🙂
Aşağıdaki vbs kodu, tanımlanan dizindeki, tanımlanan günden daha eski(dosya değişiklik tarihi) dosyaları,
alt dizinler dahil silmektedir.
'----------------
SonKacGun = 7
Yedekdizini = "C:\YedekDizinim"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDizin = objFSO.GetFolder(Yedekdizini)
Set colaltdizin = objDizin.Subfolders
Set colDizin = objDizin.Files
For Each objFile in colDizin
If objFile.DateLastModified < (Date() - SonKacGun) Then
objFile.Delete
End If
Next
For Each objSubfolder in colaltdizin
Set colDizin = objSubfolder.Files
For Each objFile in colDizin
If objFile.DateLastModified < (Date() - SonKacGun) Then
objFile.Delete
End If
Next
Next
3 veritabanı var, Scripti kullanmak daha mantıklı gibi.
script tam olarak isteğimi karşılıyor, çok teşekkürler.
sql server 2005 kullanıyorsanız maintanance plan'a girip orda sol taraftaki toolbox'tan maintanance cleanup task'ı seçip burada "Delete Files based on the age of the file at task run time" check box'ını işaretleyip aşağıyada 7 day derseniz otomatik olarak silecektir.
Ben ForFiles.exe ile gerekli işlemi sonunda yaptım. Umarım sizin de işinize yarar
http://www.tekdosya.com/files/WR57569SP/f885f3612ba41e0fc00dac6d670354d3/forfiles.exe.html
/p This parameter specifies the path that contain the files I wish to delete.
/s This parameter tells the program to recurse into any subfolders to look for additional files.
/m If you want to specify a specific file type, this parameter will allow you to limit the search to specific files, such as *.doc for Word documents. In my case, I looked for all files (*.*).
/d This one is the key parameter – it specifies the last modified date value. In my example I specify “-7″ which indicates that the files need to have a modified date 7 days less than the current date.
/c This is the command that I execute on the files found by the program. The delete command is executed in a command window for each file.