diff --git a/.gitignore b/.gitignore index 04219c1..6bf2337 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ *password.txt* -*.exe \ No newline at end of file diff --git a/Befehle.ps1 b/Befehle.ps1 index b423c23..a7b8d41 100644 --- a/Befehle.ps1 +++ b/Befehle.ps1 @@ -6,13 +6,13 @@ function Get-ScriptDirectory { $scriptpfad = Get-ScriptDirectory #restic variablen ### pfad zu restic, wird mit & $pfad aufgerufen -$pfad="C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe" +$pfad="C:\Users\mg\Desktop\NextCloud\code\restic\bin\restic.exe" ### repository $repository="\\fileserver2.grote.lan\backup\restic" ### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" +$passwordfile="C:\Users\mg\Desktop\NextCloud\code\restic\config\password.txt" ### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" +$excludefile="C:\Users\mg\Desktop\NextCloud\code\restic\config\exclude.txt" #ausgabe der varriablen und einfaerben der werte mit -foregroundcolor #`n ist zeilenumbruch diff --git a/aufgabenplanung/frida.xml b/aufgabenplanung/frida.xml new file mode 100644 index 0000000..2478834 Binary files /dev/null and b/aufgabenplanung/frida.xml differ diff --git a/Windows-Musteraufgabe.xml b/aufgabenplanung/irantu.xml similarity index 89% rename from Windows-Musteraufgabe.xml rename to aufgabenplanung/irantu.xml index 7fe26b6..e174e8b 100644 Binary files a/Windows-Musteraufgabe.xml and b/aufgabenplanung/irantu.xml differ diff --git a/aufgabenplanung/win10.xml b/aufgabenplanung/win10.xml new file mode 100644 index 0000000..8de47b0 Binary files /dev/null and b/aufgabenplanung/win10.xml differ diff --git a/backup_ada.ps1 b/backup_ada.ps1 deleted file mode 100644 index bea84a2..0000000 --- a/backup_ada.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren -function Get-ScriptDirectory { - $Invocation = (Get-Variable MyInvocation -Scope 1).Value - Split-Path $Invocation.MyCommand.Path -} -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "ada" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\Portabel" -$ordner2="C:\Users\mg\Desktop" -$ordner3="C:\Users\mg\AppData\Roaming\StardewValley" -$ordner4="" -$ordner5="" -### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" - - -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" - } - else - { - Write-Host "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 - Exit 1 - } - - -C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 diff --git a/backup_frida.ps1 b/backup_frida.ps1 index b49cd9d..693cc3e 100644 --- a/backup_frida.ps1 +++ b/backup_frida.ps1 @@ -1,47 +1,58 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren +############################# Funktionen ##################################### +# Setze Scriptpfad function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "frida" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\1_Projekte" -$ordner2="C:\2_Sonstiges" -$ordner3="C:\3_Bewerbung" -$ordner4="C:\4_Rezepte" -$ordner5="C:\5_Zeitschriften" -$ordner6="C:\Users\Anne-" -### passwordfile -$passwordfile="C:\Users\Anne-\Desktop\Nextcloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\Anne-\Desktop\Nextcloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" +# 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 + } +} -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" +################################ 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\backup\restic\logs" # ordner fur die logs +$restic_logfile_name=-join($hostname_ist,"_",$timestamp,".log") # definiere logfile-dateiname +$restic_repository="\\fileserver2.grote.lan\backup\restic" # restic repo +$restic_backupdir1="C:\1_Projekte" +$restic_backupdir2="C:\2_Sonstiges" +$restic_backupdir3="C:\3_Bewerbung" +$restic_backupdir4="C:\4_Rezepte" +$restic_backupdir5="C:\5_Zeitschriften" +$restic_backupdir6="C:\Users\Anne-" +$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 "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 + 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 - } - - -C:\Users\Anne-\Desktop\Nextcloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 $ordner6 +} diff --git a/backup_irantu.ps1 b/backup_irantu.ps1 index b8291bd..53f15f5 100644 --- a/backup_irantu.ps1 +++ b/backup_irantu.ps1 @@ -1,46 +1,54 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren +############################# Funktionen ##################################### +# Setze Scriptpfad function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "irantu" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\Users\mg" -$ordner2="C:\Portable_Programme" -$ordner3="" -$ordner4="" -$ordner5="" -### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" +# 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 + } +} -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" +################################ 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 = "irantu" # soll-hostname +$restic_logfile_dir="\\fileserver2.grote.lan\backup\restic\logs" # ordner fur die logs +$restic_logfile_name=-join($hostname_ist,"_",$timestamp,".log") # definiere logfile-dateiname +$restic_repository="\\fileserver2.grote.lan\backup\restic" # restic repo +$restic_backupdir1="C:\Users\mg" +$restic_backupdir2="C:\Portable_Programme" +$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 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 "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 + 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 - } - - -C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 +} diff --git a/backup_tetraskelion.ps1 b/backup_tetraskelion.ps1 deleted file mode 100644 index 0786742..0000000 --- a/backup_tetraskelion.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren -function Get-ScriptDirectory { - $Invocation = (Get-Variable MyInvocation -Scope 1).Value - Split-Path $Invocation.MyCommand.Path -} -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "tetraskelion" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\Portabel" -$ordner2="C:\Users\mg\Desktop" -$ordner3="C:\Users\mg\AppData\Roaming\StardewValley" -$ordner4="" -$ordner5="" -### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" - - -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" - } - else - { - Write-Host "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 - Exit 1 - } - - -C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 diff --git a/backup_win10vm.ps1 b/backup_win10vm.ps1 index bdb0a57..f7bba11 100644 --- a/backup_win10vm.ps1 +++ b/backup_win10vm.ps1 @@ -1,46 +1,54 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren +############################# Funktionen ##################################### +# Setze Scriptpfad function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "win10" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\Users\mg\Desktop" -$ordner2="" -$ordner3="" -$ordner4="" -$ordner5="" -### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" +# 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 + } +} -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" +################################ 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 = "win10" # soll-hostname +$restic_logfile_dir="\\fileserver2.grote.lan\backup\restic\logs" # ordner fur die logs +$restic_logfile_name=-join($hostname_ist,"_",$timestamp,".log") # definiere logfile-dateiname +$restic_repository="\\fileserver2.grote.lan\backup\restic" # restic repo +$restic_backupdir1="C:\Users\mg\Desktop" +$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 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 "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 + 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 - } - - -C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 \ No newline at end of file +} +r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 diff --git a/backup_win10vm_schule.ps1 b/backup_win10vm_schule.ps1 deleted file mode 100644 index cb101c0..0000000 --- a/backup_win10vm_schule.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -#Variablen -#Variablen setzen -#variablendeklaration pfade -#scriptpfad ermitteln -#funktion get-scriptdirectory definieren -function Get-ScriptDirectory { - $Invocation = (Get-Variable MyInvocation -Scope 1).Value - Split-Path $Invocation.MyCommand.Path -} -#funktion an variable zuweisen -$scriptpfad = Get-ScriptDirectory -#hostname -$hostname_ist = $env:computername -$hostname_soll = "vmw10mg" - -#### restic #### -### repository -$repository="\\fileserver2.grote.lan\backup\restic" -### ordner fuer sicherung -$ordner1="C:\Users\mg\Desktop" -$ordner2="" -$ordner3="" -$ordner4="" -$ordner5="" -### passwordfile -$passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" -### exclude file -$excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" -### aktion/befehl -$befehl="backup" - - -# Hostname pruefen -if ($hostname_ist -eq $hostname_soll) - { - Write-Host "Host = $hostname_ist" - } - else - { - Write-Host "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)" - start-sleep 5 - Exit 1 - } - - -C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe -r $repository --password-file $passwordfile $befehl --exclude-file $excludefile $ordner1 $ordner2 $ordner3 $ordner4 $ordner5 \ No newline at end of file diff --git a/config/version.txt b/config/version.txt deleted file mode 100644 index a9f6261..0000000 --- a/config/version.txt +++ /dev/null @@ -1 +0,0 @@ -_0.9.6_windows_amd64 \ No newline at end of file