Veeam Tape Library Bänder aus Mailslot automatisch importieren: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „==Ausgangslage== Wir haben eine Tape Library in Veeam mit Mailslots. Das Exportieren innerhalb des Backup-to-Tapes Jobs klappt ganz wunderbar.<br> Cool wäre d…“) |
BLinz (Diskussion | Beiträge) K (→Das Skript) |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
<br> | <br> | ||
---- | ---- | ||
==Lösung== | ==Lösung 1== | ||
Das geht - Stand 11.01.2021 mit Veeam 10 - nur per Powershell.<br> | Das geht - Stand 11.01.2021 mit Veeam 10 / 11 / 12 - nur per Powershell.<br> | ||
===Das Skript== | |||
===Das Skript=== | |||
Wir erstellen folgende Datei<br> | Wir erstellen folgende Datei<br> | ||
C:\Scripts\VeeamTapeImport.ps1 | C:\Scripts\VeeamTapeImport.ps1 | ||
Zeile 14: | Zeile 15: | ||
<source lang="powershell"> | <source lang="powershell"> | ||
# Load Veeam Powershell Extensions | # Load Veeam Powershell Extensions | ||
Add-PSSnapin VeeamPSSnapin | # In neueren Veeam Versionen (11 und höher) nicht mehr notwendig und deshalb auskommentiert | ||
# Add-PSSnapin VeeamPSSnapin | |||
# Connect to local Server | # Connect to local Server | ||
Connect-VBRServer | Connect-VBRServer | ||
Zeile 26: | Zeile 28: | ||
Der Parameter {{Key|-Name}} - dort müsst Ihr den Namen der Library eintragen wie er auch in der Veeam Console angezeigt wird (markieren, {{Key|F2}} drücken und kopieren)<br> | Der Parameter {{Key|-Name}} - dort müsst Ihr den Namen der Library eintragen wie er auch in der Veeam Console angezeigt wird (markieren, {{Key|F2}} drücken und kopieren)<br> | ||
<br> | <br> | ||
Alternativ: Hier eine Version die nur Wochentags importiert, nicht am Wochenende:<br> | |||
<source lang="powershell"> | |||
$Wochentag = Get-Date -Format "dddd" | |||
If (($Wochentag -notlike "Samstag") -And ($Wochentag -notlike "Sonntag")) { | |||
# Connect to local Server | |||
Connect-VBRServer | |||
# Wait a Moment | |||
timeout 5 | |||
# Get TapeLibrary and Import Tapes from Mediaslots | |||
Get-VBRTapeLibrary -Name "IBM 3573-TL 1400" | Import-VBRTapeMedium | |||
# Disconnect | |||
Disconnect-VBRServer | |||
} | |||
</source> | |||
Auf einem englischen System solltet Ihr die Bezeichnungen für Samstag und Sonntag entsprechend anpassen.<br> | |||
---- | |||
===Die Aufgabe=== | ===Die Aufgabe=== | ||
In der Aufgabenplanung erstellen wir einen neue Aufgabe per {{Key|Aufgabe erstellen}}<br> | In der Aufgabenplanung erstellen wir einen neue Aufgabe per {{Key|Aufgabe erstellen}}<br> | ||
Zeile 39: | Zeile 58: | ||
<br> | <br> | ||
---- | ---- | ||
==Lösung 2: bei MFA etc.== | |||
Das mit dem PowerShell-Skript funktioniert.<br> | |||
Jedoch hatte ich mit dem Ausführen Bauchschmerzen. Denn inzwischen ist bei vielen Kunden der Zugriff zu Veeam eingeschränkt. Der Benutzer Administrator darf nicht mehr dran, die Benutzer haben alle MFA aktiviert und jeder Admin sein eigenes Konto.<br> | |||
Man kann zwar ein Dienstkonto in Veeam definieren bei dem man MFA deaktiviert. Das muss aber auch die Administratoren-Rolle haben, sonst ist der PowerShell-Zugriff nicht erlaubt. Das Konto darf also alles, inklusive Anmeldung an der Managementkonsole.<br> | |||
Die Lösung: Wir hängen das Skript einfach an einen Backup-Job:<br> | |||
:[[Datei:ClipCapIt-250219-140658.PNG]]<br> | |||
In einem Job unter | |||
Storage => Advanced Settings => Scripts | |||
lassen wir das Skript vor oder nach einem beliebigen Job laufen.<br> | |||
Als Befehlszeile die gleiche wie man diese auch in Lösung 1 in der Aufgabenplanung eingerichtet hätte:<br> | |||
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File C:\Scripts\VeeamTapeImport.ps1 | |||
:[[Datei:ClipCapIt-250219-141043.PNG]]<br> | |||
:[[Datei:ClipCapIt-250219-141250.PNG]]<br> | |||
---- | |||
==Testen== | ==Testen== | ||
Startet die Aufgabe einmal von Hand oder das PowerShell-Skript per Doppelklick oder aus der Shell heraus.<br> | Startet die Aufgabe einmal von Hand oder das PowerShell-Skript per Doppelklick oder aus der Shell heraus.<br> | ||
Zeile 45: | Zeile 80: | ||
<br> | <br> | ||
---- | ---- | ||
==Kommentare== | ==Kommentare== | ||
<comments /> | <comments /> |
Aktuelle Version vom 19. Februar 2025, 15:39 Uhr
Ausgangslage
Wir haben eine Tape Library in Veeam mit Mailslots. Das Exportieren innerhalb des Backup-to-Tapes Jobs klappt ganz wunderbar.
Cool wäre das er beim entnehmen der Bänder aus dem Mailslots einfach dort die neuen wieder einlegt und diese dann auch automatisch wieder importiert.
Das ist die Tape Library in Veeam:
Lösung 1
Das geht - Stand 11.01.2021 mit Veeam 10 / 11 / 12 - nur per Powershell.
Das Skript
Wir erstellen folgende Datei
C:\Scripts\VeeamTapeImport.ps1
mit folgendem Inhalt:
# Load Veeam Powershell Extensions
# In neueren Veeam Versionen (11 und höher) nicht mehr notwendig und deshalb auskommentiert
# Add-PSSnapin VeeamPSSnapin
# Connect to local Server
Connect-VBRServer
# Wait a Moment
timeout 5
# Get TapeLibrary and Import Tapes from Mediaslots
Get-VBRTapeLibrary -Name "IBM 3573-TL 1400" | Import-VBRTapeMedium
# Disconnect
Disconnect-VBRServer
Der Parameter -Name - dort müsst Ihr den Namen der Library eintragen wie er auch in der Veeam Console angezeigt wird (markieren, F2 drücken und kopieren)
Alternativ: Hier eine Version die nur Wochentags importiert, nicht am Wochenende:
$Wochentag = Get-Date -Format "dddd"
If (($Wochentag -notlike "Samstag") -And ($Wochentag -notlike "Sonntag")) {
# Connect to local Server
Connect-VBRServer
# Wait a Moment
timeout 5
# Get TapeLibrary and Import Tapes from Mediaslots
Get-VBRTapeLibrary -Name "IBM 3573-TL 1400" | Import-VBRTapeMedium
# Disconnect
Disconnect-VBRServer
}
Auf einem englischen System solltet Ihr die Bezeichnungen für Samstag und Sonntag entsprechend anpassen.
Die Aufgabe
In der Aufgabenplanung erstellen wir einen neue Aufgabe per Aufgabe erstellen
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File C:\Scripts\VeeamTapeImport.ps1
Lösung 2: bei MFA etc.
Das mit dem PowerShell-Skript funktioniert.
Jedoch hatte ich mit dem Ausführen Bauchschmerzen. Denn inzwischen ist bei vielen Kunden der Zugriff zu Veeam eingeschränkt. Der Benutzer Administrator darf nicht mehr dran, die Benutzer haben alle MFA aktiviert und jeder Admin sein eigenes Konto.
Man kann zwar ein Dienstkonto in Veeam definieren bei dem man MFA deaktiviert. Das muss aber auch die Administratoren-Rolle haben, sonst ist der PowerShell-Zugriff nicht erlaubt. Das Konto darf also alles, inklusive Anmeldung an der Managementkonsole.
Die Lösung: Wir hängen das Skript einfach an einen Backup-Job:
In einem Job unter
Storage => Advanced Settings => Scripts
lassen wir das Skript vor oder nach einem beliebigen Job laufen.
Als Befehlszeile die gleiche wie man diese auch in Lösung 1 in der Aufgabenplanung eingerichtet hätte:
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File C:\Scripts\VeeamTapeImport.ps1
Testen
Startet die Aufgabe einmal von Hand oder das PowerShell-Skript per Doppelklick oder aus der Shell heraus.
In Veeam in den Logs (z.B. Last 24 Hours) sollte die Importversuche zu sehen sein: