none
Nach einem zeitlichen Intervall drei Archive anlegen und diese immer wieder überschreiben. RRS feed

  • Frage

  • Hallo zusammen,

    ich möchte ein Verzechnis spiegeln und zusätzlich dieses in ein Archiv packen. Dies funktioniert auch. Das Script soll dann wöchenlich laufen. Zur Zeit wird das Archiv dann immer wieder überschrieben. 

    Ich möchte aber auch, dass jede Woche ein weiteres Archiv mit gleichem Namen und anderem Zeitstempel erstellt wird.

    Sind drei Archive erstellt, soll in der vierten Woche das erste Archiv wieder überschrieben werden. In der fünften Woche das zweite Archiv und so weiter.

    Vermutlich muss ich hier mit einer Schleife arbeiten, die nach dem Datum filtert. Nur leider habe ich keine Ahnung, wie ich hier vorgehen soll. Kann mir hier jemand auf die Sprünge helfen?

    Vielen Danke schon mal!

    $FireFoxProfilePath = "$env:APPDATA\Mozilla"
    $FireFoxBackupPath = "W:\Sicherungen\FireFoxBackup\PS\Roaming\Mozilla"
    $ZipBackupDestination = "W:\Sicherungen\FireFoxBackup\PS\Roaming"
    $Date = get-date -Format dd.MM.yyyy
    $ZipBackup ="$ZipBackupDestination\FirefoxBackup_"+"$Date.zip"
    
    robocopy "$FireFoxProfilePath" $FireFoxBackupPath /MIR /LOG+:$FireFoxBackupPath\backup.log /NP 
    
    & "$env:ProgramFiles\7-Zip\7z.exe" @('a','-mx=9',$ZipBackup,$FireFoxBackupPath)  

    Montag, 25. Dezember 2017 18:16

Antworten

Alle Antworten

  • Moin,

    die pragmatischste Variante wäre wohl, dass Du die ZIP-Dateien im Zielordner, die Deinem Namensmuster folgen, auflistest und nach Datum sortierst. Sind mehr als drei vorhanden, löschst Du halt so viele, dass drei übrig bleiben, und erstellt danach das heutige.

    Alternative: Du nummerierst die Archive nicht nach Datum, sondern nach Wochennummer Modulo 4. Dann sind ja nur vier Stück möglich, und das mit dem gleichen Index wie das heutige wird überschrieben (sofern Du das Zip-Kommando entsprechend gestaltest).

    Übrigens: Wenn Du PowerShell 5 oder höher nutzt, brauchst Du keinen externen Zipper mehr, sondern kannst auf Compress-Archive zurückgreifen.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    • Als Antwort markiert Sönke T Donnerstag, 28. Dezember 2017 12:07
    Montag, 25. Dezember 2017 18:58
  • Hallo,

    danke für die Inspiration, funktioniert nun! Habe wohl zu kompliziert gedacht. Naja, komme ich wieder drum rum, Schleifen zu lernen.

    Danke auch für den Tip, dass PS nun Zippen kann.

    Falls es jemand benötigt, hier mein Script:

    # Variablen
    $FireFoxProfilePath = "$env:APPDATA\Mozilla"
    $FireFoxBackupPath = "W:\Sicherungen\FireFoxBackup\PS\Roaming\Mozilla"
    $ZipBackupDestination = "W:\Sicherungen\FireFoxBackup\PS\Roaming"
    $Date = get-date -Format dd.MM.yyyy
    $ZipBackup ="$ZipBackupDestination\FirefoxBackup_"+"$Date.zip"
    
    # Alle Zip Dateien einlesen und abwärts nach Zeitstempel "Last Write Time" sortieren. Danach eine neue anlegen und die älteste Zip Datei löschen, wenn drei Zip Dateien erreicht wurden.
    Get-ChildItem -Path $ZipBackupDestination -Include "*.zip" -Recurse | Sort-Object LastWriteTime -desc | Select-Object -skip(2) | Remove-Item
    
    # Firefox Verzechnis spiegeln und Logdatei anlegen.
    robocopy "$FireFoxProfilePath" $FireFoxBackupPath /MIR /LOG+:$FireFoxBackupPath\backup.log /NP 
    
    # Zip datei mit 7Zip erstellen
    & "$env:ProgramFiles\7-Zip\7z.exe" @('a','-mx=9',$ZipBackup,$FireFoxBackupPath)  

    Donnerstag, 28. Dezember 2017 12:10