csitsolutions-mg
Goto Top

Skript Backups löschen

Hallo,

ich suche eine Möglichkeit Backup Dateien auf einer USB Platte zu löschen wenn der freie Platz ein vorher festgelegtes Minimum unterschreitet.

z.B. Platz kleiner 100 GB lösche die älteste Datei vom Typ *.tib bis mehr als 100 GB Speicher vorhanden sind

Zur Zeit lösche ich Daten automatisch nach einer festgelegten Anzahl von Tagen mit folgendem VBS Skript.

Option Explicit
Dim intZahl '
Dim strExtension '
Dim intTage '
Dim objDatei '
Dim objFSO '
Dim objOrdner '
Dim strOrdner '

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOrdner = "E:\"
strExtension = "tib"
intTage = 6

Set objOrdner = objFSO.GetFolder(strOrdner)
intZahl = 0
For Each objDatei In objOrdner.Files
If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension) _
And DateDiff("d", objDatei.DateLastModified, Now) > intTage Then
objDatei.Delete
intZahl = intZahl + 1
End If
Next


Leider sind meine VB oder Powershell Kenntniss hier nicht ausreichend und ich wäre Dankbar für jeden Tip.


Gruss Christian

Content-ID: 334430

Url: https://administrator.de/contentid/334430

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

132895
132895 07.04.2017 aktualisiert um 14:43:25 Uhr
Goto Top
Powershell
$drive = 'W:'  
$folder = 'W:\Backup'  
while (((gwmi win32_LogicalDisk -Filter "DeviceId='$drive'").Freespace) -lt 100GB){  
    gci $folder -Filter *.tib | sort LastWriteTime -Descending | select -First 1 | remove-item -Force -Verbose
}
hauruck
Vision2015
Vision2015 07.04.2017 um 14:46:46 Uhr
Goto Top
Zitat von @csitsolutions-mg:

Hallo,

ich suche eine Möglichkeit Backup Dateien auf einer USB Platte zu löschen wenn der freie Platz ein vorher festgelegtes Minimum unterschreitet.

z.B. Platz kleiner 100 GB lösche die älteste Datei vom Typ *.tib bis mehr als 100 GB Speicher vorhanden sind

Zur Zeit lösche ich Daten automatisch nach einer festgelegten Anzahl von Tagen mit folgendem VBS Skript.

Option Explicit
Dim intZahl '
Dim strExtension '
Dim intTage '
Dim objDatei '
Dim objFSO '
Dim objOrdner '
Dim strOrdner '

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOrdner = "E:\"
strExtension = "tib"
intTage = 6

Set objOrdner = objFSO.GetFolder(strOrdner)
intZahl = 0
For Each objDatei In objOrdner.Files
If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension) _
And DateDiff("d", objDatei.DateLastModified, Now) > intTage Then
objDatei.Delete
intZahl = intZahl + 1
End If
Next


Leider sind meine VB oder Powershell Kenntniss hier nicht ausreichend und ich wäre Dankbar für jeden Tip.


Gruss Christian

Moin,
hm..*.tib
gehe ich recht in der annahme das es sich um acronis image files handelt ?
dann lass doch acronis die daten löschen...die funktion replikation von backups/bereinigung kann das, auch kannst du sagen wie lange du die daten halten möchtest....

Frank
Clijsters
Clijsters 07.04.2017 um 15:04:52 Uhr
Goto Top
Hallo,

Der Vollstaendigkeit halber ;)
Hab' vor Ewigkeiten (als es das noch nicht gab, nehme ich an) mal das annaehernde Gegenteil davon in einen Batch-Schnipsel geschrieben...
Loescht somit alle ausser das neueste.
for /f %%i in ('dir /b /o-D /a-d /tC "%DatSich%\*.tib"^|more /e +1') do del /f /s /q %%i  
Koennte man wohl mal umdrehen; wuerde aber, wenn ueberhaupt, die PoSh Loesung praeferieren.

LG
Dominique