############################# Funktionen ##################################### # Setze Scriptpfad function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } # Setze Timestamp function get-timestamp{ $timestamp = (get-date -Format yyyy_MM_dd__HH_mm_ss) return $timestamp } # Funktion: countdown, zählt von einem Wert herunter bis 0 # der Wert $laufzeit muss übergeben werden, muss int sein, gibt länge des Countdowns an # Bsp.: set-countdown -laufzeit $zeit_countdown oder set-countdown -laufzeit 5 function set-countdown([int]$laufzeit){ for ($laufzeit; $laufzeit -gt 0; $laufzeit--){ Start-Sleep -s 1 # wartet 1 Sekunde write-host -ForegroundColor RED $laufzeit } } ################################ Variablen ################################### $scriptpfad = Get-ScriptDirectory # setzt den Pfad zum Script ohne endendes \ $timestamp = get-timestamp # setzt den Zeitstempel $hostname_ist = $env:computername # ist-hostname $hostname_soll = "frida" # soll-hostname $restic_logfile_dir="\\fileserver2.grote.lan\restic\logs" # ordner fur die logs $restic_logfile_name=-join($hostname_ist,"_",$timestamp,".log") # definiere logfile-dateiname $restic_repository="\\fileserver2.grote.lan\restic" # restic repo $restic_backupdir1="C:\Users\amd" $restic_backupdir2="" $restic_backupdir3="" $restic_backupdir4="" $restic_backupdir5="" $restic_backupdir6="" $restic_path= Join-Path $scriptpfad bin\restic.exe ################################ Logik ####################################### if ($hostname_ist -eq $hostname_soll){ Write-Host -ForegroundColor GREEN "restic backup laeuft..." & $restic_path --cleanup-cache --repo $restic_repository --password-file $scriptpfad\config\password.txt backup --exclude-file $scriptpfad\config\exclude.txt $restic_backupdir1 $restic_backupdir2 $restic_backupdir3 $restic_backupdir4 $restic_backupdir5 $restic_backupdir6 2>&1> $restic_logfile_dir\$restic_logfile_name if (($LastExitCode -eq 0) -or ($LastExitCode -eq 3)){ #3 besagt das bestimmte Dateien nicht geoeffnet werden konnten Write-Host -ForegroundColor GREEN "restic backup erfolgreich" } else{ Write-Host -ForegroundColor RED "Es sind Fehler aufgetreten.`nBitte Log($restic_logfile_dir\$restic_logfile_name) pruefen!" set-countdown -laufzeit 120 # ruft Funktion Countdown auf } } else{ Write-Host -ForegroundColor RED "Falscher Host(SOLL: $hostname_soll IST: $hostname_ist)" Write-Host -ForegroundColor RED "Bitte den richtigen Host auswaehlen." set-countdown -laufzeit 15 # ruft Funktion Countdown auf Exit 1 }