Automatisiertes Backup mit der Windows Powershell
Nachdem mein USB-Stick Anfang Februar den Dienst verweigert hat und somit alle Daten, darunter meine Web- und Windows-Projekte, unzugänglich wurden habe ich mir Gedanken über ein automatisiertes Backup für meinen Stick gemacht. Da kam mir die Windows Powershell in den Sinn.
Das Backup-Script war mit 5 Zeilen Code schnell geshrieben:
Set-Location "I:\" $NowDate = Get-Date -UFormat %Y\%m\%d.%m.%Y $BackupPath = "E:\Backup\UsbStick\$NowDate\" New-Item -Path $BackupPath -ItemType "Directory" Get-Childitem "I:\" | ForEach-Object -Process { Copy-Item $_ -Destination $BackupPath -Recurse }
Zur Erklärung:
- Der aktuelle Arbeitsort wird auf das zu sichernde Wechselmedium gesetzt.
- Die Backups werden nach Jahren, Monaten und zuletzt Sicherungsdatum angelegt. Daher ist das Datum $NowDate im Format JJJJ\MM\DD.MM.JJJJ nötig.
- Auf die Variable $BackupPath wird der Speicherort der Backups geschrieben, wobei zum Schluss das bereits für den Ordnerpfad formatierte Datum angehängt wird.
- Entsprechend dem Inhalt von $BackupPath wird ein neuer Ordner angelegt.
- Die Elemente des zu sichernden Sticks werden ausgelesen und an den Zielort $BackupPath kopiert, wobei durch das Anfügen von -Recurse an die Anweisung die Ordner rekursiv kopiert werden.
Nachdem dieser Code als *.ps1-Datei gespeichert wurde, kann nun die Zeitgesteuerte Ausführung über die Windows Aufgabenplanung eingerichtet werden.
In dieser wird eine neue Aufgabe erstellt; die Trigger müssen nach eigenen Vorlieben eingestellt werden.
Als Aktion gibt man powershell ein. Im Feld Argumente wird folgendes eingegeben:
-noprofile -command Pfad\Datei.ps1
Pfad und Datei müssen natürlich noch durch den Pfad zur Datei und den Dateinamen ersetzt werden.
Nun muss man sich nicht mehr um das Sichern seines USB-Sticks kümmern.
