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-Key: 334430

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

Printed on: May 12, 2024 at 12:05 o'clock

Mitglied: 132895
132895 Apr 07, 2017 updated at 12:43:25 (UTC)
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
Member: Vision2015
Vision2015 Apr 07, 2017 at 12:46:46 (UTC)
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
Member: Clijsters
Clijsters Apr 07, 2017 at 13:04:52 (UTC)
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