restic/backup_frida.ps1

59 lines
2.6 KiB
PowerShell
Raw Normal View History

2021-04-23 08:20:08 +02:00
############################# Funktionen #####################################
# Setze Scriptpfad
2020-04-14 19:51:48 +02:00
function Get-ScriptDirectory {
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
2021-04-23 08:20:08 +02:00
# 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
}
}
2020-04-14 19:51:48 +02:00
2021-04-23 08:20:08 +02:00
################################ Variablen ###################################
$scriptpfad = Get-ScriptDirectory # setzt den Pfad zum Script ohne endendes \
$timestamp = get-timestamp # setzt den Zeitstempel
$hostname_ist = $env:computername # ist-hostname
2021-04-23 08:25:08 +02:00
$hostname_soll = "frida" # soll-hostname
2021-10-09 11:21:04 +02:00
$restic_logfile_dir="\\fileserver2.grote.lan\restic\logs" # ordner fur die logs
2021-04-23 08:20:08 +02:00
$restic_logfile_name=-join($hostname_ist,"_",$timestamp,".log") # definiere logfile-dateiname
2021-10-09 11:21:04 +02:00
$restic_repository="\\fileserver2.grote.lan\restic" # restic repo
2021-06-17 21:54:38 +02:00
$restic_backupdir1="C:\Users\amd"
$restic_backupdir2=""
$restic_backupdir3=""
$restic_backupdir4=""
$restic_backupdir5=""
$restic_backupdir6=""
2021-04-23 08:20:08 +02:00
$restic_path= Join-Path $scriptpfad bin\restic.exe
2020-04-14 19:51:48 +02:00
2021-04-23 08:20:08 +02:00
################################ 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
2020-04-14 19:51:48 +02:00
2021-04-23 08:20:08 +02:00
if (($LastExitCode -eq 0) -or ($LastExitCode -eq 3)){ #3 besagt das bestimmte Dateien nicht geoeffnet werden konnten
Write-Host -ForegroundColor GREEN "restic backup erfolgreich"
2020-04-14 19:51:48 +02:00
}
2021-04-23 08:20:08 +02:00
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
2020-04-14 19:51:48 +02:00
}
2021-04-23 08:20:08 +02:00
}
else{
Write-Host -ForegroundColor RED "Falscher Host(SOLL: $hostname_soll IST: $hostname_ist)"
Write-Host -ForegroundColor RED "Bitte den richtigen Host auswaehlen."
2020-04-14 19:51:48 +02:00
2021-04-23 08:20:08 +02:00
set-countdown -laufzeit 15 # ruft Funktion Countdown auf
Exit 1
}