Archive:Benutzte Bänder eines Sesam Tages

From SEPsesam
Revision as of 15:32, 21 October 2021 by Sta (talk | contribs)
Other languages:

Copyright © SEP AG 1999-2024. Alle Rechte vorbehalten.

Jede Form der Reproduktion der Inhalte dieses Benutzerhandbuches, ganz oder in Teilen, ist nur mit der ausdrücklichen schriftlichen Erlaubnis der SEP AG gestattet. Bei der Erstellung dieses Benutzerhandbuches wurde mit größtmöglicher Sorgfalt gearbeitet, um korrekte und fehlerfreie Informationen bereit stellen zu können. Trotzdem kann die SEP AG keine Gewähr für die Richtigkeit der Inhalte dieses Benutzerhandbuches übernehmen.

Icon archived docs.png DER INHALT DIESER SEITE IST VERALTET
Die SEP AG hat die Unterstützung für veraltete SEP sesam Versionen eingestellt. Anleitungen stehen nach wie vor für diese SEP sesam Produkte zur Verfügung, jedoch übernimmt SEP AG keine Verantwortung oder Haftung für Fehler oder Ungenauigkeiten in den Anleitungen oder für die falsche Bedienung veralteter SEP sesam Software. Es wird dringend empfohlen Ihre SEP sesam Software auf die neueste Version zu aktualisieren. Die neueste Dokumentation für SEP sesam finden Sie unter Dokumentation.


Übersicht

Mit SEP sesam können Sie sich am Ende eines Sicherungstages (auch Sesam Tag genannt) einen Übersicht über alle für Sicherungen verwendeten Medien (hauptsächlich Bandmedien) verschaffen. Dazu müssen Sie zunächst ein Skript erstellen und dieses dann in SEP sesam integrieren, indem Sie einen Befehlstermin in der GUI anlegen oder die notify-Schnittstelle nutzen.

Skript konfigurieren

Um einen Übersicht über alle für Sicherungen verwendeten Medien zu erhalten, gehen Sie wie folgt vor:

  1. Kopieren Sie den Quellcode des untenstehenden Skriptbeispiels in eine Datei, z.B. unter Linux List_Used_Media.sh und unter Windows List_Used_Media.ps1.
  2. Dann kopieren Sie diese Datei nach /opt/sesam/bin/sesam oder nach <sesam-root>\bin\sesam.
  3. Unter Linux müssen Sie außerdem sicherstellen, dass eine Datei ausführbar ist:
  4. chmod +x /opt/sesam/bin/sesam/List_Used_Media.sh

Danach können Sie das Skript in SEP sesam integrieren.

Skript Beispiel

Beachten Sie, dass die Medien des aktuellen Sicherungstages angezeigt werden, wenn im Skript kein bestimmtes Datum angegeben ist.

Unter Linux

In diesem Beispiel werden die verwendeten Medien der Medienpools Tag, Woche, Monat und VMs angezeigt. Ersetzen Sie die MPOOLS-Werte mit den Namen der Medienpools in Ihrer SEP sesam Umgebung.

#!/bin/bash
#####################################################################
#
# Ausgabe der Bandmedien, die am angegebenen Sesamtag zum Backup
# benutzt wurden. Wird kein Datum angegeben, wird der aktuelle
# Sesamtag gesetzt.
#
#####################################################################

MPOOLS="'Day','Week','Month','VMs'"
OUTFILE="/tmp/Used-Sesam-Media.txt"

read_ini()
{
  source `grep -i '^sm_ini=' /etc/sesam2000.ini|cut -d"=" -f2` 2>/dev/null
}

read_ini
source "${gv_rw_ini}/sesam2000.profile" >/dev/null 2>&1

DATEVALID=0

if [ "$1" == "" ]; then   # letzten Sesamtag ermitteln
  SESAMDAY=`sm_db "select max(sesam_date) from results" | tail -1 | cut -d"=" -f3 | cut -d" " -f1`
  DATEVALID=1
elif [[ "$1" =~ [[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2} ]];then  # Datumsformat OK?
    SESAMDAY=$1
    DATEVALID=1
else
  echo "Falsches Datumsformat!! Datum mit Muster yyyy-mm-tt angeben."
  exit 1
fi

if [ $DATEVALID -ne 0 ]; then
  echo "Folgende Bänder wurden am Sesamtag <$SESAMDAY> zum Backup benutzt:" | tee $OUTFILE
  sm_db "SELECT label,barcode FROM media WHERE label IN (SELECT DISTINCT label FROM result_lbls WHERE saveset IN (SELECT saveset FROM results WHERE state IN  ('0','1') AND sesam_date LIKE '$SESAMDAY%' AND media_pool IN ($MPOOLS)))" | tee -a $OUTFILE
  sm_smtp -A "sesam" -s "SEP sesam Msg: Benutzte Bänder am Sesamtag <$SESAMDAY>" -M "$OUTFILE"
  RC=$?
fi

if [ $RC -eq 0 ]; then
  echo STATUS=SUCCESS MSG="Bandliste wurde erfolgreich erstellt und per E-Mail versandt"
else
  echo STATUS=ERROR MSG=Fehler in Bearbeitung
fi

Unter Windows

Dies ist ein Powershell-Skript. Um es auszuführen, müssen Sie die Berechtigungen auf dem SEP sesam Server festlegen. Details finden Sie unter FAQ.

#################################################
#						#
# Ausgabe der Bandmedien, die am angegebenen    #
# Sesamtag zum Backup benutzt wurden.           #
#						#
#################################################



if([string] $args[0] -eq "")	# Ist der erste Parameter ein Datum
{
	# Wenn kein Parameter angegeben wurde, nutze aktuellen Sesamtag
	$SESAMDAY = (sm_glbv r gv_datum) + " 00:00:00"
}
else
{
	if($args[0] -match "^\d{4}\-\d{2}\-\d{2}$") # Datumsformat korrekt?
	{
		$SESAMDAY = $args[0] + " 00:00:00"
	}
	else
	{
		# Benutzer informieren und Programm beenden
		write "Falsches Datumsformat, bitte benutzen Sie folgendes Format yyyy-mm-tt"
		return
	}
}

# Mediendaten ermitteln
$RESULT = ([string] (sqlite3 -noheader "$(sm_glbv r gv_rw_db)\sesam_db.sdb" "select label from media where label IN (select distinct label from result_lbls where saveset in (select saveset from results where sesam_date='$($SESAMDAY)' and blocks>0)) order by pool,label")).Split()

# Wenn nichts gefunden wurde
if($RESULT.Length -lt 1)
{
	sm_smtp -A sesam -s "SESAM: Kein Medium gefunden" -m " Es wurde kein Medium fuer den Sesamtag $(($SESAMDAY).Replace(' 00:00:00','')) gefunden. Entweder ist der Sesamtag falsch oder es ist kein Backup an diesem Tag gelaufen"
	return
}

# Count-Variable
$count=0

# Temporaere Textdatei anlegen
Set-Content -Path $Env:TEMP\labels.txt -Value ("Following tapes were used for backups on sesam day $(($SESAMDAY).Replace(' 00:00:00','')):")

# Schreibe Medium-Label Zeile fuer Zeile
while($count -le $RESULT.Length)
{
	if ( ($RESULT)[$count] -match "^\w{6,}" )
	{
        Add-Content -Path $Env:TEMP\labels.txt -Value "Label: $($RESULT[$count])"
	}
	$count++;
}

# E-Mail senden
sm_smtp -A sesam -s "SESAM: Uebersicht der benutzten Medien" -M $env:TEMP\labels.txt

Integrieren eines Skripts in SEP sesam

Sie können ein Skript auf zwei verschiedene Weisen in SEP sesam integrieren: durch das Erstellen eines Befehlstermins in der GUI oder durch die Verwendung der notify Schnittstelle.

Durch die Erstellung eines Befehlstermins

Um ein Skript durch Erstellen eines Befehlstermins in der GUI zu integrieren, müssen Sie zunächst einen Zeitplan erstellen (oder einen vorhandenen Zeitplan auswählen) und dann einen Befehlstermin erstellen, indem Sie einen neuen Befehl angeben.

  1. Erstellen Sie in der SEP sesam GUI unter Auswahl -> Zeitplanung -> Zeitpläne einen neuen Zeitplan oder verwenden Sie einen bestehenden (durch Doppelklick) und geben Sie an, wann das Skript laufen soll (z.B. um 07:30 Montag bis Freitag). Eine schrittweise Vorgehensweise finden Sie unter Erstellen eines Zeitplanes.
  2. Klicken Sie mit der rechten Maustaste auf den Zeitplan und wählen Sie Neuer Befehlstermin.
  3. Klicken Sie auf Auswählen neben dem Feld Name und dann auf Neu.
  4. List media command new Beefalo V2 de.jpg
  5. Geben Sie im Fenster Neuer Befehl Folgendes an:
    • Geben Sie in das Feld Name einen beschreibenden Namen für den Befehl ein, z. B. list_media.
    • Wählen Sie den Client aus der Dropdown-Liste.
    • Geben Sie den Benutzernamen an (Benutzer administrator oder root).
    • Geben Sie in das Feld Befehl den folgenden Befehl ein:
    • /opt/sesam/bin/sesam/<file> Zum Beispiel unter Linux: /opt/sesam/bin/sesam/List_Used_Media.sh Klicken Sie auf OK, um den Befehl zu speichern. List media command Beefalo V2 de.jpg
  6. Wählen Sie im Fenster Befehle den neuen Befehl aus der Liste aus und klicken Sie dann auf Auswählen. Die Optionen auf der Registerkarte Parameter werden automatisch eingestellt, und Sie müssen nur noch auf OK klicken, um den Befehlstermin zu konfigurieren.
  7. List media command event Beefalo V2 de.jpg
Information sign.png Anmerkung
Sie können einen Befehlstermin auch sofort starten, unter Aktivitäten -> Sofortstart -> Befehl. Für Details siehe Sofortstart: Befehl.

Durch Verwendung der Notify-Schnittstelle

Sie können den Befehl ALL_JOBS_DONE in der Notify-Schnittstelle verwenden, um Informationen über die für Sicherungen am festgelegten Sicherungstag verwendeten Medien zu erhalten. Beachten Sie, dass die Notify-Schnittstelle zuerst aktiviert werden muss, bevor Sie sie verwenden können. Details finden Sie unter Konfiguration: Schnittstellen.

In den folgenden Beispielen wird das Skript ausgeführt, nachdem das letzte geplante Event des SEP sesam Sicherungstages beendet wurde.

Auszug aus sm_notify (Linux):

...
case $1 in
      ALL_JOBS_DONE)
         /opt/sesam/bin/sesam/list-used-labels.sh
         send_status_mail "$2";
         # unload_tape 2;
         ;;
      INIT)
...

Auszug aus sm_notify.ps1 (Windows):

switch($command){
  ALL_JOBS_DONE {$mail_subject = "Sesam backup status: $message"
					mail_attach $mail_subject;
					./List_Used_Media.ps1;
					#print_attach;
					#unload_tape 2;
					#load_to_slot 1 2;
                	break}