Mein Blog

Unter blog.sebastian-wolfen.de betreibe ich einen Blog, in dem ich über meine aktuellen Projekte sowie Ideen im Bereich der Windows- und Webentwicklung schreibe. Mitunter sind dort auch Tipps und kleine How-Tos zu finden.

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:

  1. Der aktuelle Arbeitsort wird auf das zu sichernde Wechselmedium gesetzt.
  2. Die Backups werden nach Jahren, Monaten und zuletzt Sicherungsdatum angelegt. Daher ist das Datum $NowDate im  Format JJJJ\MM\DD.MM.JJJJ nötig.
  3. Auf die Variable $BackupPath wird der Speicherort der Backups geschrieben, wobei zum Schluss das bereits für den Ordnerpfad formatierte Datum angehängt wird.
  4. Entsprechend dem Inhalt von $BackupPath wird ein neuer Ordner angelegt.
  5. 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.