78 Kommentare

  1. Marcel um | | Antworten

    Hallo!
    Bei mir bringt sqlite3 diese Fehlermeldung, wenn ich den Select ausführe.

    Error: file is encrypted or is not a database

    Hast du eine Idee dazu?

    Viele Dank!

  2. Marcel um | | Antworten

    [root@server /]# sqlite3 /var/lib/veeam/veeam_db.sqlite „select start_time, end_time, state, progress_details from JobSessions order by start_time DESC limit 1;“
    Error: file is encrypted or is not a database

    [root@server /]# veeamconfig -v
    v1.0.1.364

  3. Petr um | | Antworten

    Verry GOOD !!!
    Howto add it to cron or howto run this script automatically ?

    Thanks,
    Petr

  4. Jose Manuel um | | Antworten

    Hi,

    I will use and modify this script.

    Very good job!!

    Thank you,
    Jose Manuel.

  5. Tobias um | | Antworten

    Super Script! Danke dafür!
    Habe Zeile 39 so angepasst, dass auch bei erfolgreichen Jobs das Skript sofort aussteigt. Identisch zu laufenden Skripten.
    Somit bekomme ich nur eine Meldung wenn es einen Warning oder einen Fehler gab. Das hält den Blick scharf 🙂

  6. Karsten um | | Antworten

    Toll, vielen Dank!

    In der aktuellen Version v2.0.0.400 des Veeam Agent gibt es in der veeamconfig-Ausgabe am Ende eine weitere Zeile mit der Anzahl der Sessions. Damit das abgefangen wird:

    Zeile 27:
    SESSID=$($VC session list|tail -1|awk ‚{print $3}‘)

    Ersetzen durch:
    if [ „${AGENT:0:2}“ == „v2“ ]; then
    SESSID=$($VC session list|tail -2|head -n 1|awk ‚{print $3}‘)
    else
    SESSID=$($VC session list|tail -1|awk ‚{print $3}‘)
    fi

  7. Jens um | | Antworten

    Vielen Dank für das Script, läuft auf Anhieb und erspart die Arbeit nach den Logfiles zu schauen.

    Danke

    1. Jens um | | Antworten

      hat evtl. noch jemand das Problem, dass das Script nicht als Postscript im Veeam läuft?
      Erst hatte ich auch Probleme das Script per Cronjob aufzurufen, da gab es den Fehler „sendmail nicht gefunden“, das habe ich erfolgreich durch das Ergänzen des kompletten Pfades um Script behoben.
      Mir gelingt es trotzdem nicht das Script als Postscript laufen zu lassen, Fehlermeldungen gibt es keine und es kommt auch keine Mail an. Manuell und per Cronjob läuft alles….

      Grüße Jens

  8. Jan um | | Antworten

    Hallo,

    danke für das hilfreiche Script. Es hat bei mir initial einmal funktioniert, danach aber leider nicht mehr.
    Ich hatte den ersten Job nochmal entfernt und einen neuen angelegt, seither klappt etwas nicht mehr. Obwohl das letzte Backup erfolgreich war (https://pasteboard.co/H3WSdQO6.png) kommt das Script zum Ergebnis, das Backup sei noch im Gange:

    > echo $STATE
    1

    Allerdings stimmt die Session-ID auch nicht mir jener überein, die im Log-Ordner auftaucht:

    echo $SESSID
    142b0f01-abab-4de4-b580-ff9f7c2ccd0f

    > ls /var/log/veeam/Backup/Full
    Session_20180121_121415_{3892a52e-41c9-44c5-ba08-5800f6fc740b}

    Ist etwas durcheinander gekommen? Wäre dankbar für einen Hinweis.

    Danke & Gruß
    Jan

  9. Jan um | | Antworten

    Ich habe mal den veeamservice neu gestartet. Nun bekomme ich aber eine „Failed“-E-Mail, die nicht zutreffend ist, da das Backup in Wirklichkeit erfolgreich war und auch nur von 12:14 bis 12:18 Uhr dauerte (https://pasteboard.co/H3X5x3n.png)

  10. Jan um | | Antworten

    Antwort von Veeam (Workaround noch nicht von mir validiert):

    ————————
    I’ve discussed your question, and it seems to be a known issue, which will be fixed in the next update of Veeam Agent.

    As a workaround please create additional dummy „pre-job“ script for example:

    #!/bin/bash
    exit 0
    ————————

  11. Jens um | | Antworten

    Hallo Jan,

    danke für die Info. Ja, das könnte passen, als ich getestet habe, hatte ich auch ein pre-script eingerichtet und da lief der Job.
    So, eingerichtet… und es funktioniert!!
    Im Backupfenster wird jetzt auch angezeigt, dass die Scripts ausgeführt wurden.
    Ich habe natürlich das oben angesprochene Hilfsscript (Zeitschleife) verwendet.

    Danke
    Jens

  12. Peter Leibling um | | Antworten

    Vielen Dank für die Mühen und das Bereitstellen – funktioniert Klasse :).

    Pingback: https://www.leibling.de/2018/01/25/veeam-emailbenachrichtigung-fuer-veeam-backup-agent-for-linux/

  13. Peter Leibling um | | Antworten

    Hallo, leider habe ich das Problem das, das Script nicht nach dem Backup ausgeführt wird – von Hand startet es jedoch. Ich habe die Scripte als root mit wget runterladen in /etc/veeam/scripts und editiert. Danach dann in den Jobeigenschaften dann zuregordnet (mit Browser, Datei wurde gefunden).

    Den Scripten habe ich mit chmod 755 und noch mit chgrp veeam angepasst.

    Mit Tail kann ich sehen das wenn ich manuel starte Mails versendet werden, nach dem Jobs passiert jedoch nichts.

    Muss ich noch was ändern (Rechte anpassen oder ähnliches)?

    Danke für das tolle Scipt und die Unterstützung.

  14. Peter Leibling um | | Antworten

    Hallo Manfred, danke für deine schnelle Antwort – dank dem Pre-Script kommt nun zumindest die Meldung das es ausgeführt wurde – aber es kommt nichts an. Auch mit einem tail /var/log/exim4/mainlog sehe ich nur meine manuel ausgeführten Versuche, keine der zum Script passt.

    In dem Job.log wird folgendes geschrieben:

    [25.01.2018 14:54:15] lpbcore| Executing custom script: [/etc/veeam/scripts/veeam_mail.sh]. Arguments: []
    [25.01.2018 14:54:15] lpbcore| Executing custom script: [/etc/veeam/scripts/veeam_mail.sh]. Arguments: []
    [25.01.2018 14:54:15] | Thread started. Thread id: 140418414360320, parent id: 140418431145728, role: script output redirector to log
    [25.01.2018 14:54:15] | Thread started. Thread id: 140418405967616, parent id: 140418431145728, role: script output redirector to buffer
    [25.01.2018 14:54:15] | Thread started. Thread id: 140418395965184, parent id: 140418431145728, role: Pid waiter. timeout: 600
    [25.01.2018 14:54:15] | Thread finished. Role: ’script output redirector to buffer‘.
    [25.01.2018 14:54:15] | Thread finished. Role: ’script output redirector to log‘.
    [25.01.2018 14:54:15] | Thread finished. Role: ‚Pid waiter. timeout: 600‘.
    [25.01.2018 14:54:15] lpbcore| Executing custom script: [/etc/veeam/scripts/veeam_mail.sh]. Arguments: [] ok.
    [25.01.2018 14:54:15] lpbcore| Executing custom script: [/etc/veeam/scripts/veeam_mail.sh]. Arguments: [] ok.
    [25.01.2018 14:54:15] vmb | [SessionLog][info] Post-job script has been executed successfully.
    [25.01.2018 14:54:15] vmb | [SessionLog][info] Processing finished at 2018-01-25 14:54:15 CET.

    Auf der Firewall sehe ich im SMTP des Relays nichts einkommen – auch nur hier meine manuellen Teste.

    Hättest du eine weitere Idee?

    Danke für deine Mühen.

  15. Peter Leibling um | | Antworten

    Hallo Manfred, ich bin leider immer noch mit meinem Problem dran. Wenn ich per root das Script von Hand starte, dann läuft das durch.

    Wenn ich es jedoch per Cron startete bekam ich den folgenden Fehler:

    /etc/veeam/scripts/veeam_mail.sh: Zeile 104: sendmail: Kommando nicht gefunden.

    Das Problem konnte ich lösen in dem ich in Zeile 104 sendmail gegen /usr/sbin/exim ausgetauscht habe.

    Ich könnte zwar jetzt einfach nach der Sicherung irgendwann mit Cron mir den Bericht senden lasse – wäre aber nicht schön.

    Du schriebst das es daran lag, das der Job noch läuft – die Sicherung läuft bei mir ca. 40 Sekunden (sind nicht viele Daten die gesichert werden), deshalb habe ich ich direkt oben in deinem Script ein sleep 120 eingebaut, dann sollte dicke die Sicherung durch sein.

    Jedoch nach der Sicherung passiert nichts, es wird zwar im Veeam angezeigt das Post Script abgearbeitet wurden, jedoch sehe ich mit einem tail /var/log/exim4/mainlog das nichts passiert ist – dort sehe ich nur meine manuellen Teste.

    Langsam bin ich ratlos.

    1. Jens um | | Antworten

      Es bringt nichts, in das Script ein Sleep einzubauen, da die Sicherung erst beendet ist, wenn das Pos-Script beendet ist. Daher hatte Manfred und auch ich weiter oben schon die Lösung dazu aufgezeigt. Im Post-script das eigentliche Script mit einer Zeitverzögerung aufrufen und das Post-script sofort beenden.

      Auch das Problem „sendmail nicht gefunden“ habe ich weiter oben schon angesprochen, einfach im Script den vollen Pfadnamen zu sendmail eintrage, dann klappt das auch.

      Grüße Jens

  16. Peter Leibling um | | Antworten

    Ok, nun habe ich auch auch verstanden – ich dachte, das es nur eine Weile dauerte bis der Job tatsächlich beendet ist – und nicht das der Job erst nach dem Post-Script beendet ist.

    Das mit dem ganzen Pfad war nicht mein eigentliches Problem – das eigentliche Problem war, das ich Exim nutze und unter root wo ich manuel getestet hatte, war wahrscheinlich ein Alias dafür da, der nicht beim Cron griff – erst als ich dann Exim mit ganzen Pfad verwendetet lief das Script bei mir.

    Ich nutze so lange erst mal die Cron Lösung und warte dann sehnsüchtig auf die Anpassung. Auf jeden Fall habe ich dank deinem Script Manfred endlich mal eine schicke Email mit dem Status :).

    Danke für eure Mühen :).

  17. Peter Leibling um | | Antworten

    Perfekt – you make my Day :).

    Funktioniert einwandfrei – danke für die Lösung.

  18. Timo um | | Antworten

    Hallo zusammen,

    zunächst einmal vielen Dank für dieses Skript, super Arbeit! Leider bin ich noch kein all zu großer Linux Feak und bringe mir das alles erst seit kurzer Zeit bei. Da ich bei mir alle Sicherung der Linux Maschinen auch mit dem Veeam Agent mache bin ich hier über den Beitrag gestolpert und prinzipiell bekomme ich das Skript zum laufen aber leider nicht als post-script. Ich hatte zunächst sendmail verwendet aber bin dann auf postfix gewechselt. Ich kann das Skript direkt aufrufen und die Mails kommen auch an, nur nicht durch den Veeam Agent. Bevor ich postfix installiert habe konnte ich im unkonfigurierten sendmail auch den Fehler sehen, dass ich noch kein Relay eingerichtet habe (als post-script). Nun passiert überhaupt nichts und ich finde auch keinen Eintrag im mail.log oder im Veeam Agent. Der sendmail Befehl funktioniert mit postfix und ich habe auch schon absolute Pfade angegeben aber leider wieder nichts. Muss ich hier noch irgendetwas beachten?

  19. Timo um | | Antworten

    Das mit dem pre-job Skript hatte ich einfach völlig ignoriert ….. 🙂 Nachdem ich dann auch noch das Notepad++ Problem gelöst habe funktioniert nun alles. Vielen Dank!

  20. Timo um | | Antworten

    Ich habe noch ein kleines Problem mit dem Skript wenn das Backup fehlschlägt. Habe zu Testzwecken einfach mal die Sicherung abgebrochen und in der Mail die dann gesendet wird fehlen die meisten Informationen wie z.B. der Status, Endzeit und einige Details. Führe ich das Skript danach manuell aus kommt die E-Mail korrekt an mit alles Informationen. Tritt wie gesagt nur bei dem State Failed auf, Warning müsste ich noch mal testen.

  21. Timo um | | Antworten

    Das Skript wird definitiv ausgeführt, in der Mail sind nur nicht alle Informationen vorhanden. Ich kann gerne mal die Mail weiterleiten damit das klarer wird. Abgebrochen habe ich den Job einfach per Stop Befehl in Veeam.

  22. Timo um | | Antworten

    Hallo Manfred,

    die neue Version funktioniert nun auch wenn ich den Job abbreche. Wenn ich das Skript aber manuell aufrufe bekomme ich die Meldung „nohup: redirecting stderr to stdout“ und bleibe einfach in der Shell hängen. Scheint dennoch alles normal abzulaufen und die Mails kommen auch alle an.

    Falls Interesse besteht, ich habe die Vorlage noch ein ganz klein wenig angepasst, sodass die Mail jetzt exakt so aussieht wie beim Veeam Agent für Windows. Wirklich nur minimal

  23. Bartosz um | | Antworten

    Thank’s for script ! It’s works amazing on Debian systems.
    But i cannot send e-mail from CentOS. I use pre-job scrips of course.
    I checked sqlite and bc it’s installed.
    Any ideas ?

  24. Peter Leibling um | | Antworten

    Hallo, nachdem die Datensicherung so Probleme machte, das ich diese komplett deinstallieren und neu installieren musste habe ich auch wieder die Emailinfo eingerichtet.

    Jedoch habe ich mal wieder Probleme.

    Wenn ich aktuelle Version einrichte, dann wird als Pre-Job keine Mail versendet. Starte ich das Script von Hand, bekomme ich folgende Meldung:

    root@web:/usr/local/sbin# nohup: leite Standardfehlerausgabe auf Standardausgabe um

    Das Script endet nicht, Mail kommt dann jedoch an (zumindest beim starten von Hand).

  25. Peter Leibling um | | Antworten

    Update: Aktualisieren von Veeam auf die aktuellste Version (gemäß meiner Anleitung https://www.leibling.de/veeam-agent-for-linux-aktualisieren-auf-debian-oder-ubuntu-server/) hat das Problem behoben – das Script läuft nun wieder ohne Probleme.

    Danke für das Teilen deines Scripts.

  26. Tom um | | Antworten

    Hallo Manfred,
    herzlichen Dank für Teilen des Skript und ich möchte Dir gerade noch ein virtuelles Kränzchen dafür binden! Ich benutze das Skript mit Veeam 3.x Linux Agent auf einem Open Media Vault (OMV) Version 4.x Server. Ich habe das Skript heruntergeladen, die Anpassungen im Header gemacht (Job Name etc) und dann hat es einfach funktioniert, dies gerade schon beim ersten Mal. Ich dachte noch es gibt Probleme, da OMV mit postfix anstatt sendmail kommt aber , wie gesagt alles gut , schön und farbig 🙂

  27. Stefan Zimmermann um | | Antworten

    Hey Manfred,
    Ich bin krass erstaunt. Die Email sieht aus, wie von Herr VEEAM persönlich. Danke! Ich habe beim Einrichten ein paar Problemchen gehabt und gelöst:
    Fehler1: …database encrypted…
    Auf dem Scientific Linux (Rehat-Ableger) war übers Repository sqllite3 in der Version 3.6.xx installiert. Nach ein bisschen Rumforscherei habe ich stumpf das Binary ersetzt mit einer aktuellen Version 3.7.xx von der sqllite-Webseite. Schon lief es.
    Fehler2: Mail mit leerem Inhalt
    Ich habe nach ein wenig debuggen die Zeile 91 „TEMPFILE=$(tempfile)“ geändert in TEMPFILE=$(mktemp)

    Vielen Dank noch mal!
    Stefan

  28. artcap um | | Antworten

    Hab auch das nohub Problem allerdings hab ich die aktuellste Version schon. Version: veeam 3.0.1.1046
    /usr/local/sbin# nohup: leite Standardfehlerausgabe auf Standardausgabe um

  29. artcap um | | Antworten

    Hab hinter /dev/null noch das hinzugefügt: 2>&1

    Original:
    if [ ! „$1“ == „–bg“ ]; then
    nohup $0 –bg >/dev/null &
    exit

    Änderung:
    if [ ! „$1“ == „–bg“ ]; then
    nohup $0 –bg >/dev/null 2>&1 &
    exit

    Keine nohub Fehlermeldung mehr. Danke für das nette script. 😉

  30. René um | | Antworten

    Hallo zusammen !

    Endlich habe ich es auch für mich funktionieren lassen, es ist so toll!
    Vielen Dank für das Skript und für alle Kommentare und Fehlerbehebungen, die zur aktuellen Version geführt haben.
    Ich habe jedoch ein kleines Problem, für das ich noch etwas Hilfe anfordern möchte: Ist es nicht möglich, die Quell-IP-Adresse und die IP-Adresse (oder den Pfad) des freigegebenen Zielordners anzuzeigen?

    Aus meiner Sicht scheint es für den Bericht wirklich relevant zu sein …

    Etwas hilfe bitte!

    Vielen Dank

  31. René um | | Antworten

    Hallo Manfred,

    Vielen Dank für Ihre hohe Reaktionsfähigkeit …
    Ich versuche herauszufinden, wie ich die Datenbank verlassen kann, um diesen Zweck zu erreichen …
    Ich gebe zu, dass das Skript alles tut, was es soll, aber ich habe immer noch das gleiche Problem mit Marcel auf einem meiner Server, auf dem veeam agent v2.0.0.400 installiert ist. Dort stecke ich bei der Fehlermeldung fest.

    Fehler: Die Datei ist verschlüsselt oder keine Datenbank

    Auf dem Server läuft Centos 6, und ich habe keine Problemumgehung gefunden, um dieses Problem zu lösen, da ich nicht auf eine andere Linux-Version migrieren kann.
    Ich werde jeden Vorschlag wirklich zu schätzen wissen.

    Grüße
    René

  32. Tatiana Stampfli um | | Antworten

    Hallo Manfred

    danke für das tolle Script. Es macht genau das was ich brauche.
    Jedoch erhalte ich das Mail mit leerem Inhalt. Ich habe auch schon mktemp nachinstalliert, hat jedoch nichts gebracht.
    Kannst du mir hier weiterhelfen?
    Danke im Voraus und liebe Grüsse

    Tatiana

  33. Tatiana Stampfli um | | Antworten

    Hallo Manfred

    danke für die schnelle Antwort.
    ich erhalte keinen Pfad für „echo $TEMPFILE“. Frage mich ob das überhaupt erzeugt wird.
    Wo kann ich die Version nachsehen? Habe die Files einfach von deiner Webseite heruntergeladen.

    Gruss Tatiana

  34. Tatiana um | | Antworten

    Version ist 0.5.4
    Befehl liefert die sqlite prompt:

    [root@vwerkpsql02 sbin]# sqlite3 /var/lib/veeam/veeam_db.sqlite
    SQLite version 3.7.17 2013-05-20 00:56:22
    Enter „.help“ for instructions
    Enter SQL statements terminated with a „;“
    sqlite>

  35. Ralphy um | | Antworten

    vielen Dank für das schöne Script!

  36. Ralphy um | | Antworten

    Sehr gerne doch! 🙂

    Ich hatte das Script vor einigen Monaten Mal auf einem Testsystem getestet gehabt -> Funktionierte problemlos. Nun wollen wir das Script im großen Stil auf 15 weiteren System implementieren, scheitern jedoch bereits am 1. :-D. Meine Vorgehensweise:

    -> Anpassung des Scripts (.config) in Windows
    -> .zip aller benötigten Dateien
    -> Hochladen in die Cloud
    -> Verbinden mit Zielsystem
    -> WGET und unzip
    -> benötigte Dateien via mv in /usr/local/sbin
    -> umbenennen von veeam_mail.sh.txt in veeam_mail.sh
    -> chmod +x auf veeam_mail.sh.txt
    -> Manuelle Ausführung des Scripts um zu prüfen, ob er nicht bei der apt-get Kontrolle von sqlite etc. hängenbleibt
    -> Integration des Scripts im Veeam Agent als Postscript
    -> Starten des Jobs

    Danach erhalte ich zwar eine E-Mail mit folgendem Betreff:
    [Success] CENSORED – Tuesday, 30 July 2019 10:23:30

    Der Inhalt der E-Mail ist jedoch leer.

    Erkennst du bei meiner Vorgehensweise vielleicht einen Fehler und kannst mir spontan weiterhelfen?

    Vielen lieben Dank vorab und viele Grüße,
    Ralphy

  37. Ralphy um | | Antworten

    Hallo Manfred,

    vielen Dank für die wahnsinnig schnelle Rückmeldung. Das freut mich sehr.

    Da ich sowieso an der Pflege unserer Systeme dran bin, habe ich das Script mit der selben Vorgehensweise auf 3 weiteren Systemen implementiert und anschließend den Veeam Job ausgeführt.

    1 System schickt leere template files (Alle Felder unausgefüllt) und die restlichen 3 Systeme inhaltslose SUCCESS Mails.

    Damit das Ganze ein wenig aussagekräftiger ist, habe ich Screenshots angefertigt und möchte Dir zusätzlich meine configfile zeigen:

    Screenshot:
    https://imgur.com/a/5iufjF3

    JOBNAME=“VEEAMJOBNAME“
    EMAILTO=“backup@xxx.de“
    EMAILFROM=“backup@yyy.it“
    HTMLTEMPLATE=“/usr/local/sbin/veeam_mail_template.html“
    SKIPVERSIONCHECK=0
    SMBUSER=““
    SMBPWD=““

    Viele Grüße,
    Ralphy

Kommentar abgeben