[HowTo] Automatisches Owncloud Kalender/Kontakte Backup in Windows

666mille

Komplett-PC-Aufrüster(in)
Hallo Leute,

ich habe auf meiner Synology NAS Owncloud am laufen. Mit Owncloud synchronisiere ich auch meine Kontakte und Kalender. Deswegen wollte ich automatisiert ein Backup von den Kalendern und den Kontakten erstellen. Leider habe ich im Netz nicht direkt eine Anleitung gefunden wie man das mit Windows macht und mich selber dran gesetzt. Es ist nicht schön......aber es funktioniert. Ihr solltet Euch auch im klaren sein das Euer Passwort im Klartext steht. Jedem dem das nicht gefällt sollte die Finger weg lassen. Für alle die es interessiert habe ich hier mal ein einfaches HowTo erstellt:

  1. Mit einem Editor ein Powershell Skript erstellen. Ein Powershell Skript hat die Endung "ps1" (Also z.B. MyOwncloudBackup.ps1)
  2. Dieses Skript sollte folgenden Inhalt haben:
    $pfad = "hier tragt ihr euren Pfad ein wo ihr das Backup speichern wollt"
    # z.B.: $pfad = "D:\OwncloudBackup"
    $datum = $(get-date -f yyyy_MM_dd)
    $benutzer = "hier tragt ihr euren Owncloud Benutzernamen ein"
    $passwort = "hier tragt ihr euren Owncloud Passwort ein"
    $pair = "${benutzer}:${passwort}"
    $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
    $base64 = [System.Convert]::ToBase64String($bytes)
    $basicAuthValue = "Basic $base64"
    $headers = @{ Authorization = $basicAuthValue }
    Invoke-WebRequest -uri "https://hier tragt ihr eure Domain bzw. IP ein/owncloud/remote.php/caldav/calendars/hier tragt ihr euren Owncloud Benutzernamen ein/hier tragt ihr euren Owncloud Kalendernamen ein?export" -Headers $headers -OutFile "$path\Kalenderhier tragt ihr euren Owncloud Benutzernamen ein_$DATUM.ics
    #z.B.:Invoke-WebRequest -uri "https://ds.mydomain.de/owncloud/remote.php/caldav/calendars/maxmustermann/meinkalender?export" -Headers $headers -OutFile "$path\KalenderMeinkalender_$DATUM.ics"

    Invoke-WebRequest -uri "https://hier tragt ihr eure Domain bzw. IP ein/owncloud/remote.php/carddav/addressbooks/hier tragt ihr euren Owncloud Benutzernamen ein/hier tragt ihr euren Owncloud Kontaktenamen ein?export" -Headers $headers -OutFile "$path\Kontakte_$DATUM.vcf"
    #z.B.:Invoke-WebRequest -uri "https://ds.mydomain.de/owncloud/remote.php/carddav/addressbooks/maxmustermann/meinekontakte?export" -Headers $headers -OutFile "$path\Kontakte_$DATUM.ics"

    #Falls ihr in Eurem oben angelegten Ordner alte Backups automatisch nach einiger Zeit (Tage) löschen wollt, dann kommen noch folgende Zeilen:
    $zeit = [int]10 #10 Tage
    # lösche die alten Dateien
    Get-ChildItem $path -Recurse -Include "*.ics", "*.vcf" | WHERE {($_.CreationTime -le $(Get-Date).AddDays(-$zeit))} | Remove-Item -Force


  3. Windows+R taste zeitgleich drücken
  4. Taskschd.msc eingeben und mit Enter bestätigen
  5. Rechts im Aktionen Menü auf "Aufgabe erstellen..." klicken
  6. Im nachfolgenden Fenster im Reiter "Allgemein" gebt ihr unter Name: "OwncloudBackup" ein. Ganz unten das Häckchen bei Ausgeblendet setzen.
  7. Dann auf Reiter: "Trigger" klicken. Dann unten auf "Neu..". Oben bei Aufgabe starten. "Bei Anmeldung" setzen. Wer will noch Verzögern für...
  8. Im Reiter "Aktionen". Unten auf Neu. Aktion auf "Programm starten" stellen. Unter Programm/Skript: "Powershell". Unter Argumente hinzufügen (optional): Pfad auf das eben angelegte Skript setzen: z.B.: D:\OwncloudBackup\MyOwncloudBackup.ps1
  9. Fertig

Viel Spaß damit!
 
Zurück