Veeam Agent for Linux – mit E-Mail Bericht versehen

Der Windows Agent von Veeam liefert nach dem Backup einen recht netten Bericht mit dem Status der gerade durchgeführten Sicherung:

Selbige Funktion fehlt dem Linux Agent leider, dem kann man zwar durch manuelles Aufrufen der Console ähnliche Daten entlocken – wirklich praktisch ist das allerdings nicht…

Als alter Bash Liebhaber findet sich aber fast immer für jedes Problem eine Lösung, ich habe ein kleines Bash Script gebaut welches die Werte vom letzten Veeam Backup Job ausliest und mittels Template File aufbereitet und per Mail versendet.

Das Ergebnis sieht dann wie folgt aus:

Die Unterschiede sind relativ gering, mit den Daten kann man aber auf jeden Fall was anfangen!

Hier gibt es das kleine Script zum Herunterladen:

http://www.grufo.com/veeam_mail.sh.txt

und das dafür nötige Template File:

http://www.grufo.com/veeam_mail_template.html

Seit Version 0.5 ist auch diese Config Datei nötig:

http://www.grufo.com/veeam_mail.config

Ich habe die beiden Datein auf meinem Linux System unter /usr/local/sbin/ abgelegt, der Pfad zur Template Datei ist entpsrechend im Script anzupassen – ebenso wie Absender und Empfänger Mail Adresse und der Name des Backup Jobs.

Man kann das Script als Post-Job Script beim Veeam Job mit angeben, sollte der letzte Job noch nicht fertig sein beendet sich das Script ohne weitere Meldungen.

Fehler werden auch entsprechend farblich gekennzeichnet und mit den Error Meldungen aus dem Logfile versehen:

Mir fehlt im Moment noch eine „Warning“ Mail vom Windows Agent damit ich die auch noch entsprechend anpassen kann, dürfte aber nur eine Frage der Zeit sein.

Ich hoffe ich kann mit dem kleinen Script auch anderen Veeam Nutzern eine Freude bereiten – positives Feedback ist willkommen! 😉

27.09.2017 – Update:

Ein paar kosmetische Änderungen habe ich noch vorgenommen, die Details kommen jetzt mit Zeilenschaltungen daher und nicht mehr in einer Wurst, die Agent Version vom Linux wird mit angegeben und Warnings erscheinen in orange.

2018.01.30 – Update Version 0.4: Nachdem das Script als Post-Script nicht funktionierte (siehe Kommentare) habe ich es ein wenig modifiziert, es forkt sich jetzt selbst und läuft verzögert im Postscript durch. Voraussetzung dass es überhaupt läuft es ein dummy-Pre-Script, ohne dieses kommt es vor dass veeam kein Post Script startet – ein Bug der wohl mit der nächsten Version behoben sein wird. Danke an Jens, Jan und Peter für’s Testen und Bugfixen! 😉

2019.04.25 – Update Version 0.5: Ich habe die Bugfixes der letzten Monate und ein paar Anregungen einfließen lassen und mich entschlossen die Version 0.5 frei zu geben. Die wichtigsten Änderungen in Kürze – Auslagerung der Config-Variablen in eine eigene Datei (veeam_mail.config), damit Updates einfach installiert werden können ohne Anpassung irgendwelcher Werte. Anzeige des Pfades auf welchem die Sicherung zuletzt gesichert wurde. Und eine Funktion die (falls aktiviert – SKIPUPGRADECHECK in der Config Datei) prüft ob eine neue Programmversion existiert und gegebenenfalls im Mail eine Info mit ausgibt.

http://www.grufo.com/veeam_mail.sh.txt
http://www.grufo.com/veeam_mail_template.html
http://www.grufo.com/veeam_mail.config

Für die nächste Version hätte ich dann geplant dass ich die Mails am Mailserver per Script auswerte und die Daten in einer Datenbank sammle. Diese sollen dann via PHP Script grafisch aufbereitet werden so dass man auf einer Übersichtsseite sofort alle Sicherungen im Blick hat.

Wie immer freue ich mich auf euer Feedback! 🙂

2019.05.07 Update Version 0.5.3: Damit es nicht langweilig wird habe ich das Tool noch ein wenig erweitert – jetzt erscheinen auch lokal gemountete Laufwerke und es wird versucht den benutzten und zur Verfügung stehenden Platz auch mit ins Mail zu packen. Download – siehe oben.

2019.07.23 Update Version 0.5.5: Zwei neue Config Parameter habe ich in der Datei veeam_mail.config hinzugefügt, sie dienen dazu zuverlässige den freien Platz bei CIFS gemounteten Backup Laufwerken zu ermitteln. SMBUSER und SMBPWD, die Datei sollte anschließend mit passenden Rechten versehen werden (chmod 600 veeam_mail.config) weil das Kennwort darin im Klartext angegeben werden muss. Sicher nicht die perfekte Lösung, aber sie funktioniert und jemand der so weit ins System eingedrungen ist dass er hier lesen kann dürfte sowieso schon genügend Schaden anrichten können. Wer eine andere einfach umzusetzende Idee hat – nur her damit!

2020.02.04 Update Version 0.5.9: Neue Config Option „DEBUG=1“ welche beim Aufruf von „veeam_mail.sh –bg“ direkt ein paar Debug Ausgaben liefert. Version 0.5.6 bis 0.5.8 haben ein paar kleine Fehler bei der Darstellung behoben.

2020.02.07 Update Version 0.5.10: Ich habe das Script umbenannt und auf Github angesiedelt, davon verspreche ich mir eine bessere Dokumentation bei Updates und Fehlern. Zu finden auf Github unter https://github.com/grufocom/vee-mail

Dieser Beitrag hat 124 Kommentare

  1. Marcel

    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!

    1. Manfred

      Hallo Marcel,

      welche Version von Veeam hast du installiert?
      Was liefert der Befehl:
      sqlite3 /var/lib/veeam/veeam_db.sqlite „select start_time, end_time, state, progress_details from JobSessions order by start_time DESC limit 1;“

      Wenn du ihn manuell startest?

      Schöne Grüße
      Manfred

  2. Marcel

    [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

    1. Manfred

      Hallo Marcel,

      was liefert dir denn:
      file /var/lib/veeam/veeam_db.sqlite
      bei mir kommt:
      /var/lib/veeam/veeam_db.sqlite: SQLite 3.x database, user version 6

      Ich kann jetzt nicht ausschließen dass veeam gelegentlich die Datenbank verschlüsselt anlegt, wüsste jetzt aber keine Grund dafür – da müsstest du mal bei deren Support anfragen!

      Schöne Grüße
      Manfred

      1. Micha

        Hallo Manfred,

        die Datenbank ist nicht verschlüsselt, die Fehlermeldung ist nur irreführend. Der Fehler tritt bei mir auch auf – aber nur unter Cloudlinux. Mit sqlite3 kann man die DB nicht bearbeiten, was möglicherweise an der Implementierung in CentOS basierten Linuxversionen beruht.

        Unter Debian funktioniert es einwandfrei.

        Grüsse

        Micha
        .

  3. Petr

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

    Thanks,
    Petr

    1. Manfred

      Hi Petr,

      you could add that script to the veeam job under advanced as post-job!
      So it will be executed after the backup job has run.

  4. Jose Manuel

    Hi,

    I will use and modify this script.

    Very good job!!

    Thank you,
    Jose Manuel.

  5. Tobias

    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 🙂

    1. Manfred

      Hallo Tobias,

      ich habe mit Absicht die Meldung im Erfolgsfall aktiv gelassen damit ich sehe dass das Backup auch wirklich läuft. Mal angenommen es wird nicht gestartet, dann sieht man auch keine Fehler oder Warnmeldung in seinem Postfach – mit auskommentierter Erfolgsmeldung würde das dann dem Status gleich kommen den man hat wenn das Backup funktionierend durchgelaufen ist.

      Aus meiner Sicht daher eher kontraproduktiv! 🙂

      Schöne Grüße
      Manfred

  6. Karsten

    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

    1. Manfred

      Hallo Karsten,

      vielen Dank für den Hinweis – ich hab’s angepasst.
      Ich habe einfach ein „grep -v ‚Total amount'“ mit eingebaut – das wäre dann versionsunabhängig.

      Schöne Grüße
      Manfred

  7. Jens

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

    Danke

    1. Jens

      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

      1. Manfred

        Hallo Jens,

        das klingt irgendwie als würden irgendwelche environment Variablen fehlen die benötigt werden.

        Zu dem von dir im Kontaktformular übermittelten Link – das könnte auch ein anderes Problem sein, eventuell fehlende Ausführungsrechte vom Script oder so… Die Frage dort ist eher ob’s überhaupt ausgeführt wird oder nicht.

        Schöne Grüße
        Manfred

        1. Jens

          Hallo Manfred,

          ich habe mich jetzt mal ein wenig mit dem Script befasst.
          Als erstes habe ich herausgefunden, dass das Post-Script ausgeführt wird.
          Dann habe ich mir die Variablen angeschaut, hier scheint es ein Problem zu geben, wenn das Script als Post-Script läuft, dann wird nämlich die Variable $STATE immer mit „1“ befüllt und damit das Script beendet. Ich denke, es ist damit zu erklären, das das Backup noch nicht beendet ist.

          Lasse ich das Script per Cronjob nach dem Backup laufen funktioniert die Erkennung.

          Grüße Jens

          1. Manfred

            Du hast Recht es hängt mit dem STATE zusammen, das Script prüft ja ob noch ein Job läuft weil eigentlich erst nach beendetem Job sicher ist wie er abgelaufen ist! 😉
            Es ist so also als Post-Script nicht wirklich geeignet, es sei denn veeam beschließt das Post-Script erst zu starten wenn der eigentliche Backup Job schon beendet wurde.

          2. Jens

            Eine Möglichkeit wäre ein Post-Script einzusetzen, welches dein Script aufruft.
            In Deinem Script eine kurze Zeitschleife rein und es sollte funktionieren, weil das Backup dann fertig sein sollte.

          3. Manfred

            Die Möglichkeit habe ich mir auch mal überlegt, ganz optimal scheint sie mir aber nicht. 🙂
            Ich würde die Verzögerung aber wenn dann in’s aufrufende Script einbauen, so in etwa:

            #!/bin/bash

            sleep 5 && echo „OK“ &

            exit 0

            Einfach den Scriptaufruf statt echo „OK“ rein und schon sollte es 5 Sekunden verzögert starten.

  8. Jan

    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

    1. Manfred

      Hallo Jan,

      ich würde nicht allzu lange suchen und einfach veeam noch einmal deinstallieren, anschließend /etc/veeam und /var/lib/veeam löschen und dann veeam erneut installieren und die Sicherung frisch einrichten.
      Das dürfte vermutlich schneller gehen als den Fehler zu suchen! 😉

      Schöne Grüße
      Manfred

      1. Jan

        Hallo Manfred,

        Danke für den Hinweis. Du hast recht, mit frischer Konfiguration ist der Output des Script korrekt. Allerdings scheint Veeam Agent for Linux in der aktuellen Version einen Bug zu haben, der dazu führt, dass das Post-Job-Script (in bestimmten Situationen – bei vielen von euch scheint es ja zu klappen) gar nicht ausgeführt wird.

        Hier ist das Problem bereits beschrieben: https://forums.veeam.com/veeam-agent-for-linux-f41/post-job-doesn-t-work-t47878.html

        Ich habe daher einen Fall bei Veeam geöffnet.

        Gruß
        Jan

        1. Manfred

          Hallo Jan,

          lies dir bitte mal den Kommentar von Jens durch…!

        2. Jens

          Hallo Jan,

          wie du oben lesen kannst, ist das „Problem“ mit dem STATE gelöst.
          Wie ich jetzt aber mehrfach feststellen musste, ist es scheinbar Glückssache ob das post-script vom Veeam überhaupt gestartet wird. Ich habe es mit einem einfachen Script welches das Datum in ein File schreibt getestet. Momentan wird es gar nicht mehr gestartet….
          Es wäre nett, wenn du uns hier auf dem Laufenden halten würdest, bzw. uns einen Link zu dem gemeldeten Fall posten könntest.

          Danke Jens

          1. Jan

            Hallo Jens,

            genau – ich lasse auch zu Beginn ein Datum schreiben und das passiert bei mir nie.

            Der Fall ist bei Veeam nicht öffentlich einsehbar, sondern an meinen Account gebunden. Ich poste aber gerne was, wenn ich eine zielführende Antwort habe.

            Grüße
            Jan

  9. Jan

    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

    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

    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. 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.

    1. Manfred

      Hallo Peter,

      lies dir bitte die Kommentare von Jens und Jan durch, das ist ein Bug im Veeam und mit dem Workaround „pre-script“ sollte es gehen!

      Schöne Grüße
      Manfred

  13. 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.

    1. Manfred

      Hallo Peter,

      wenn du das Script manuell ausführst dann bekommst du das Mail ganz normal zugestellt – nur wenn du es als Post-Script starten lässt dann klappt es nicht. Richtig?
      Das klingt für mich nach dem unten beschriebenen Problem dass der veeam Job noch läuft und der Start vom veeam_mail.sh durch ein weiteres Script verzögert erfolgen muss!
      So lange der Backup Job noch rennt kann das Script nicht auf den endgültigen Status zugreifen, erst wenn der Job beendet ist.

      Schöne Grüße
      Manfred

  14. 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. Manfred

      Hallo Peter,

      nachdem das wohl öfter vorkommt werde ich mir eine Lösung für das Problem überlegen und einbauen. Ich hoffe ich komme in den nächsten Tagen dazu etwas zu basteln! 🙂

      Schöne Grüße
      Manfred

    2. Jens

      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

      1. Manfred

        Hallo Jens,

        genau so ist es – ich werde das Script so modifizieren dass es sich selbst forkt und beendet sobald es erkennt dass die Session noch läuft. Das mit einer Verzögerung im geforkten Script sollte die Sache vernünftig zum Laufen bringen! 🙂

        Schöne Grüße
        Manfred

  15. 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 :).

    1. Manfred

      Guten Morgen,

      ich habe gerade Version 0.4 des Scripts online gestellt – diese Version löst das Problem mit dem Post-Script! 🙂

      Schöne Grüße
      Manfred

  16. Perfekt – you make my Day :).

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

    1. Manfred

      Freut mich zu hören! 😉

  17. Timo

    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?

    1. Manfred

      Hallo Timo,

      hast du dir die Kommentare schon durchgelesen?
      Da wird genau das Thema behandelt – am besten du liest von unten nach oben, dann dürftest du am schnellsten fündig werden! 🙂

      Schöne Grüße
      Manfred

  18. Timo

    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!

  19. Timo

    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.

    1. Manfred

      Wenn du den Veeam Backup Job abbrichst, dann dürfte der vermutlich auch den Post Job nicht mehr starten und somit keine Meldung kommen.
      Wenn du auf eine externe Platte sicherst, dann könntest du das testen indem du die Platte während der Sicherung einfach absteckst – dann sollte eine entsprechende Meldung verschickt werden.
      Wie hast du denn die Sicherung abgebrochen?

  20. Timo

    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.

    1. Manfred

      Hallo Timo,

      ich konnte das Problem bei mir nachvollziehen und es liegt daran dass beim „stop“ Veeam wohl das Post Script ausführt bevor es den eigentlich Job beendet hat. Ich gehe jetzt einfach her und verzögere die Ausführung des Scripts immer ein wenig, damit gehe ich dann auf Nummer Sicher und der Job ist abgeschlossen wenn das Mail verschickt wird.

      Die neue Version ist online!

      sg
      Manfred

  21. Timo

    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

  22. Bartosz

    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 ?

    1. Manfred

      Have you installed mailx?

  23. 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).

    1. Manfred

      Super, freut mich zu hören!
      Wenn veeam korrekt installiert wurde dann wird es automatisch mit dem Klassiker „apt-get update;apt-get dist-ugprade“ aktualisiert.
      Bei der 3’er Version muss man nur beachten dass man vor dem ersten Sichern unbedingt „veeam“ starten und die beiden Lizenzen abnicken muss!
      Schöne Grüße
      Manfred

  24. Tom

    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 🙂

    1. Manfred

      Hallo Tom,

      vielen Dank – das hört man gerne! 🙂

      Schönes Wochenende
      Manfred

  25. Stefan Zimmermann

    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

    1. Manfred

      Hallo Stefan,

      danke für die Info – tempfile scheit bei Scientific Linux wohl nicht per Default installiert zu sein, mktemp macht aber eh praktisch genau das gleiche. 🙂
      Der Hinweis mit der sqlite Version wird sich dem einen oder anderen weiterhelfen – Danke!

      Schöne Grüße
      Manfred

  26. artcap

    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

  27. artcap

    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. ?

    1. Manfred

      Hallo Artcap,

      ich habe deine Änderung mit eingebaut… 🙂

      Danke
      Manfred

  28. René

    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

    1. Manfred

      Hallo René,

      das macht Sinn und kann man sicher aus der Datenbank holen!
      Ich schau mir das bei Gelegenheit mal an…

      sg
      Manfred

    2. Manfred

      Hallo René,

      ich habe deine Anregung mit dem Pfad in der aktuellen Version eingebaut und noch ein paar andere Kleinigkeiten!
      Die Version 0.5.0 steht zum Download bereit – bitte beachten dass die Konfiguration in eine eigene Datei ausgelagert wurde.

      sg
      Manfred

  29. René

    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é

    1. Manfred

      Hallo René,

      wie Stefan etwas früher schreibt hat er das Problem dadurch gelöst dass er sqlite3 durch eine neuere Version 3.7 ersetzt hat – die ältere 3.6 (oder früher) scheint mit dem Format nicht zurecht zu kommen.

      Schöne Grüße
      Manfred

  30. Tatiana Stampfli

    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

    1. Manfred

      Hallo Tatiana,

      wenn du im Script „rm $TEMPFILE“ ganz am Schluss durch „echo $TEMPFILE“ ersetzt sollte ein Aufruf dir den Pfad zur temporären Datei angeben – schau mal nach ob die existiert und befüllt ist!?
      Die aktuellste Version 0.5.4 hast du im Einsatz oder?

  31. Tatiana Stampfli

    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

    1. Manfred

      Im veeam_mail.sh File steht gleich am Anfang VERSION= drinnen.
      Was liefert dir denn der Befehl?:
      sqlite3 /var/lib/veeam/veeam_db.sqlite

  32. Tatiana

    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>

    1. Manfred

      Im Grunde geht das Script ja ganz einfach vor und holt sich erst die letzte Veeam Session und anschließend deren Daten aus der SQLite-DB.

      veeamconfig session list|grep -v "Total amount"|tail -1|awk ‚{print $3}‘

      Aus der SQLite-DB werden dann weitere Daten ausgelesen:

      SELECT start_time, end_time, state, progress_details, job_id from JobSessions order by start_time DESC limit 1;

      und

      SELECT a1.options FROM BackupRepositories AS a1 LEFT JOIN BackupJobs AS a2 ON a1.id=a2.repository_id WHERE a2.id=\“$JOBID\“

      Wobei JOBID durch die JOBID der vorherigen Abfrage ersetzt wird.

      Wenn da überall was retour kommt ist der Teil schon mal sauber.

      In Zeile 130 wird das TEMPFILE erzeugt – wenn du hier in Zeile 131 ein

      echo "ABC: $TEMPFILE“

      einfügst, dann sollte auf jeden Fall ein Pfad ausgegeben werden. Ich füge immer noch ein paar Zeichen hinzu damit ich sehe ob die Zeile überhaupt abgearbeitet wird!

      Zur Sicherheit würde ich das Script mit dem Startparameter „–bg“ starten, dann forkt es sich nicht selbst – der Aufruf dauert dann mindestens 30 Sekunden.

  33. Ralphy

    vielen Dank für das schöne Script!

    1. Manfred

      Danke für die positive Rückmeldung! 🙂

  34. Ralphy

    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

    1. Manfred

      Hallo Ralphy,

      hast du auch das Template File heruntergeladen und mit kopiert?
      Für mich klingt das als würde dieses fehlen.

      Schöne Grüße
      Manfred

  35. Ralphy

    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

    1. Manfred

      Hallo Ralphy,

      vom Screenshot her schaut es gut aus!
      Da vermute ich jetzt mal dass das Editieren unter Windows das Problem verursacht – falls die Datei mit falschen Zeilenumbrüchen gespeichert wird, dann kommt da nix vernünftiges mehr raus.
      Falls du unter Linux das dos2unix Tool installiert hast kannst du damit die Datei in ein kompatibles Format umwandeln.

      Schöne Grüße
      Manfred

  36. Superklasse Script.
    Ich habe ein paar minimale Anpassungen vorgenommen da ich es unter CentOS laufen lasse, (eigentlich nur apt durch yum ersetzt), und seitdem tut es was es soll.
    Vielen Dank dafür.

    1. Manfred

      Hallo Hansgert,

      vielen Dank – kannst du mir dein geändertes Script zukommen lassen?
      Dann kann ich sehen wie ich’s gleich fix in den Standard einbaue – eine Prüfung ob rpm oder dpkg basierend ist ja keine Hexerei. 🙂

      Schöne Grüße
      Manfred

  37. Hansgert Müller

    SQLITE=$(which sqlite3)
    if [ „$SQLITE“ != „/usr/bin/sqlite3“ ]; then
    yum install -y sqlite
    fi

    BC=$(which bc)
    if [ „$BC“ != „/usr/bin/bc“ ]; then
    yum install -y bc
    fi

    1. Manfred

      Hallo Hansgert,

      ich hab’s eingebaut – könntest du es bitte mal mit der neuen Version 0.5.6 testen!?

      Danke
      Manfred

  38. Manuel

    Hallo Manfred,

    zuerst einmal vielen Dank für die geniale Arbeit.
    Es erleichtert einem soviel.

    Ich habe da nur eine Frage, in der config gibt es die Variable JOBNAME, was soll die denn bewirken?
    Zuerst dachte ich, damit kann ich mir in der Mail einen beliebigen Namen festlegen um bei mehreren Jobs leichter eine Unterscheidung zu erkennen, welcher nun gelaufen ist.

    Habe aber das Gefühl, das diese im Skript überhaupt nicht benutzt wird und stattdessen immer der Hostname gesetzt wird.
    Also ich meine den farblichen Header in der Mail ganz oben, direkt nach Agent Backup job:
    Dort wird bei mir immer der Hostname eingetragen, egal was in der config steht oder wie der Job im Veeam heist.

    Ist das ein normales Verhalten oder stimmt da was bei mir nicht.

    Vielen Dank und beste Grüße
    Manuel

    1. Manfred

      Hallo Manuel,

      das ist korrekt im Template wird nur der Hostname getauscht und eingetragen. Der Jobname steht für den Job der gestartet werden soll. Da ich meist nur einen Job auf jeweils einem Rechner am Laufen habe passt das so für mich recht gut. Könnte man natürlich für eine künftige Version auch anders vorsehen, verwendest du denn verschiedene Backup Jobs?

      Schöne Grüße
      Manfred

  39. Manuel

    Okay, hat sich erledigt.
    War zu doof. Steht natürlich im template drin. Und dort wie vermutet mit der Variable Hostname.
    Habe nun mehrere Templates erstellt und den Hostname mit der Bezeichnung meiner Jobs ersetzt.

    Vielen Dank nochmal für die tolle Arbeit.

    Beste Grüße
    Manuel

  40. Hansgert Müller

    Hallo Manfred,
    ich habe die neue Version unter CentOS 7.7.2 getestet und versuchsweise vorher einmal bc deinstalliert.
    bc wurde sauber nachinstalliert und das Script anschließend bis zum Ende ausgeführt.
    Vielen Dank und schöne Feiertage.

    1. Manfred

      Hallo Hansgert,

      super – vielen Dank für’s Testen!
      Ebenfalls schöne Feiertage 🙂

      Schöne Grüße
      Manfred

  41. Zainul Halim

    Version: Veeam Agent for Linux v3.0.2.1190, Veeam-Mail Version 0.5.8 on Centos 7

    Hi,

    The scripts is work, but on Details its doesnt show Size, Read and Transfered

    Please advice. TQ

    1. Manfred

      Version 0.5.9 fixed that bug – centos 7 has sqlite3 and bc in another directory (/bin instead of /usr/bin).
      With Version 0.5.10 I moved the script to github -> https://github.com/grufocom/vee-mail – please subscribe to get all future news! 🙂

  42. Felix

    Hallo Manfred!
    System: ubuntu 18.04
    Fehler: post-job success aber keine E-Mail bekommen

    Ich habe die Files unter /opt/vee-mail gepackt, das vee-mail.config file mit JobId und sender/reciever E-Mail Adressen versehen, im „vee-mail.sh“ in line 7 anstatt „vee_mail.config“ nun „vee-mail.config“ eingetragen und natürlich chmod +x vee-mail.sh gemacht.
    Leider bekomme ich keine E-Mail. Hast du Ideen wo hier das Problem liegen könnte?

    Viele Grüße
    Felix

    1. Manfred

      Hallo Felix,

      entschuldige die späte Antwort!
      Danke erstmal für die Info bezüglich des Config files, habe ich angepasst.
      Was bekommst du für Meldungen wenn du DEBUG auf 1 setzt und das Script mit –bg startest?

      Schöne Grüße
      Manfred

      1. Felix

        Hallo Manfred,
        kein Problem.
        Ich habe jetzt DEBUG=1 gesetzt und bekomme nun ein den Fehler „[warn] Failed to execute post-job script“. Was genau meinst du mit -bg? bash -bg vee-mail.sh?
        Ich habe auch mal manuell versucht das Script zu starten (bash vee-mail.sh) und bekomme seltsamerweise den Fehler „No Veeam Agent for Linux installed!“. Da Veeam aber bereits Backups von dem System gezogen hat, bin ich mir eigentlich recht sicher, dass es installiert ist 😉

        Viele Grüße
        Felix

        1. Manfred

          Hallo Felix,
          es gab mal einen Bug im Veeam (welche Version nutzt du?) der verhindert hat dass das Post-Script ausgeführt wurde, Lösung dafür war einfach einen pre-script job zu erstellen.
          Dazu braucht es nur ein kleines Script mit folgendem Inhalt:

          #!/usr/bin/env bash
          exit 0

          Das Script mit „chmod +x scriptname“ ausführbar machen und als pre-job eintragen.
          Aber der Bug sollte schon lange behoben sein.
          Mit manuell starten und –bg meinte ich folgendes:

          /opt/vee-mail/vee_mail.sh –bg

          Die Meldung die du bekommst „No Veeam Agent for Linux installed!“ kommt daher dass der Befehl „which veeamconfig“ kein veeamconfig geliefert bekommt!

          Bei mir sieht das so aus:

          root@sys:~# which veeamconfig
          /usr/bin/veeamconfig
          root@sys:~# dpkg -S /usr/bin/veeamconfig
          veeam: /usr/bin/veeamconfig
          root@sys:~# dpkg -l|grep veeam
          ii veeam 4.0.0.1961 amd64 Veeam Agent for Linux
          ii veeam-release-deb 1.0.7 amd64 Veeam Backup for GNU/Linux repository
          ii veeamsnap 4.0.0.1961 all Veeam Agent for Linux (kernel module)

          Schau dir die Befehle mal an, eventuell fehlt bei dir ja wirklich was!

          Schöne Grüße
          Manfred

          1. Felix

            Hallo Manfred,
            habe exakt die gleichen Versionen wie du installiert.

            -bg geht nicht, er sagt ‚incorrect path for post-job script‘

            Den Butfix mit dem pre-script habe ich jetzt mal noch nicht getestet, da ich die gleichen veeam Versionen habe wie du.

            Evtl stimmt was in meiner vee-mail.conf nicht? Habe für email to und email from jeweils die gleiche E-Mail angegeben. Ansonsten nur den Jobnamen geändert.

            Viele Grüße
            Felix

          2. Manfred

            Hallo Felix,

            ich meinte das Script direkt auf der Kommando Zeile starten mit “ –bg“ dahinter! Nicht als Post Script. 🙂

            Schöne Grüße
            Manfred

          3. Felix

            Oh 🙂
            bash vee-mail.sh -bg ergibt wieder ‚No veeam Agent for Linux installed!‘
            Bei sudo und obrigen Befehl passiert gar nichts.

            Viele Grüße
            Felix

          4. Manfred

            Hallo Felix,

            du musst das Script als root user starten – also am besten mit „sudo su“ zum root user wechseln und dann die Befehle eingeben!

            which veeamconfig
            Und
            dpkg -l|grep veeam
            Und
            /opt/vee_mail/vee_mail.sh –bg

            Bin gespannt auf die Ausgabe…

            Schöne Grüße
            Manfred

          5. Felix

            which veeamconfig
            Und
            dpkg -l|grep veeam

            habe ich bereis als superuser ausgeführt und bekomme genau deine oben genannte Ausgabe siehe unten:

            root@sys:~# which veeamconfig
            /usr/bin/veeamconfig

            root@sys:~# dpkg -S /usr/bin/veeamconfig
            veeam: /usr/bin/veeamconfig

            root@sys:~# dpkg -l|grep veeam
            ii veeam 4.0.0.1961 amd64 Veeam Agent for Linux
            ii veeam-release-deb 1.0.7 amd64 Veeam Backup for GNU/Linux repository
            ii veeamsnap 4.0.0.1961 all Veeam Agent for Linux (kernel module)

            /opt/vee-mail/vee-mail.sh –bg wird einfach ausgeführt, genau wie ohne den -bg Parameter, e-Mail kommt keine.

            Wobei ich gerade gesehen habe, dass sudo du was anderes ist als, wenn man per sudo -i sich root Rechte verschafft, was ich gemacht habe.
            sudo du /opt/vee-mail/vee-mail.sh kommt 12 raus und bei sudo du /opt/vee-mail/vee-mail.sh -bg sagt er, dass -g eine ungültige Option sei.

            Ich weiß also gerade leider nicht was das Problem ist.

            Viele Grüße
            Felix

          6. Manfred

            Sorry, „sudo su“ – am Handy tippen.. tja – Rechtschreibkontrolle 🙂
            Beim bg bitte zwei Minus davor setzen, nur eines ist zu wenig!
            Das wird dann wohl auch automatisch ausgetauscht…
            Wenn ich das Script als nicht Root-User starte, dann bekomme ich die selbe Meldung.
            Hab da gerade noch einen check eingebaut und auf github rauf geladen…

          7. Felix

            Achso „sudo su“! mit –bg kommt raus „Zeile 199: sendmail: Befehl nicht gefunden“. Wenn ich richtig liege ist das im vee-mail.sh File die Zeile „cat $TEMPFILE | sendmail -t“. Klingt für mich als wäre die Funktionalität sendmail nicht installiert?

            Viele Grüße
            Felix

          8. Manfred

            Korrekt, postfix oder zumindest nullmailer installieren und einrichten – dann solltest du Mails bekommen! 🙂

  43. Felix

    Ich habe mich für ssmtp entschieden und kann manuell per sendmail nun erfolgreich Mails verschicken. Somit sollte nun auch vee-mail die sendmail Funktionalität verwenden können. Leider macht das vee-mail.sh Skript das nicht 🙁 Ich führe das Skript als root aus (deinen Hinweis, dass man es als root starten soll, sehe ich ;-)) und dennoch wird keine E-Mail versendet.

    Ich bin aber gerade auch etwas irritiert, weil in der vee-mail.conf steht bei „the sender email address“ „EMAILTO“ dabei und bei „reciever email address“ „EMAILFROM“. Das ist doch falsch rum oder steig ich bei der Logik nicht durch?

    Viele Grüße
    Felix

    1. Manfred

      Hallo Felix,

      kein wunder wenn du verwirrt bis – war auch falsch kommentiert, hab’s umgedreht. 🙂
      Danke für’s aufmerksam machen…
      Ich hab’s gerade bei mir mal geprüft, ich verwende das sendmail aus dem postfix Paket – könntest du mal postfix installiern und damit testen, nur damit wir das ausschließen können!? Gut möglich dass ssmtp irgendwas nicht so schluckt wie’s da daher kommt.
      Hast du in der Config auch mal den DEBUG Wert auf 1 gesetzt?
      Da müsste beim Ablauf doch einiges an Meldungen daher kommen…

      Wenn du den Hinweis siehst dass du’s aus root ausführen sollst, dann läuft es nicht als root und bricht an der Stelle ab. Bin jetzt ebenfalls verwirrt – den Hinweis solltest du ja nicht mehr sehen wenn’s als root gestartet wird! 🙂

      Schöne Grüße
      Manfred

      1. Felix

        Guten Morgen!
        Also ich habe folgende Infos. ssmtp funktioniert. Das Post-Script wird erfolgreich ausgeführt und versendet tatsächlich eine E-Mail mit Inhalt 🙂 Führe ich das Skript manuell mit sudo aus, passiert gar nichts. Mit den Optionen –bg wird zumindest eine Mail gesendet, ohne –bg passiert nichts.

        Aktiviere ich den Debugging Mode bekomme ich ohne –bg folgende Ausgabe:
        „STARTTIME: , ENDTIME: 1582362015, STATE: 6, JOBID: {2bd4dc13-cc28-43cd-ab89-a84d8fc42a65}
        DETAILS:
        TARGET: 192.168.178.10/Backup/VeeamBackup/Shinobi, FST: cifs, LOGIN: felix, DOMAIN: local“

        Mit –bg im Debugging Mode erhalte ich:
        „STARTTIME: , ENDTIME: 1582362015, STATE: 6, JOBID: {2bd4dc13-cc28-43cd-ab89-a84d8fc42a65}
        DETAILS:
        TARGET: 192.168.178.10/Backup/VeeamBackup/Shinobi, FST: cifs, LOGIN: felix, DOMAIN: local
        PROCESSED: 160.7 GB, READ: .3 GB, TRANSFERRED: 247960609
        SPEED: 57.2, SOURCELOAD: 86, NETLOAD: 21, TARGETLOAD: 97
        DURATION: 00:00:36, START: Samstag, 22 Februar 2020 09:59:39, END: Samstag, 22.02.2020 10:00:15, STIME: 09:59:39, ETIME: 10:00:15
        ERRLOG:
        HN: UBUNTUSHINOBI
        STAT: Success
        BGCOLOR: #00B050
        START: Samstag, 22 Februar 2020 09:59:39
        SUCCESS: 1
        ERROR: 0
        WARNING: 0
        STIME: 09:59:39
        ETIME: 10:00:15
        READ: .3 GB
        TRANSFERRED: 236 MB
        DURATION: 00:00:36
        PROCESSED: 160.7 GB
        BOTTLENECK: Target
        ERRLOG:
        SPEED: 57.2
        TARGET: 192.168.178.10/Backup/VeeamBackup/Shinobi
        FST: cifs
        LOGIN: felix
        DOMAIN: local“

        Für mich ist das Thema jetzt gegessen, die Config klappt und ich werde es so auf meine weitreren VMs ausrollen. Einzig eine kleine Frage hätte ich noch. Beim Backup Target zeigt er mir leider keine Infos an. Liegt das daran dass das ein cifs Share ist?

        Danke für die Hilfe bisher und viele Grüße
        Felix

        1. Manfred

          Hallo Felix,

          wenn du in der vee-mail.config die Werte für SMBUSER und SMBPWD korrekt gesetzt hast, dann sollte im Mail auch das Backup Target entsprechend aufscheinen und mit Daten versorgt sein!
          Es wird dafür folgender Befehl verwendet:

          mount -t cifs -o username=$SMBUSER,password=$SMBPWD,domain=$DOMAIN //$TARGET $MPOINT

          Wobei entsprechend die Werte für die Variablen einzusetzen sind.
          Eventuell fehlt dir hier noch das Paket cifs-utils!

          Schöne Grüße
          Manfred

          1. Felix

            Super, danke! Funktioniert wunderbar! 🙂

          2. Manfred

            Super, freut mich zu hören! 🙂
            Am besten Projekt bei GitHub abonnieren, dann bleibst du am laufenden.

            Schöne Grüße
            Manfred

  44. Daniel

    Guten Tag!

    Nach soetwas habe ich gesucht. Ich habe alles wie oben beschrieben kopiert und konfiguriert. Das Problem ist ich bekomme keine E-Mail. Wenn ich echo „Test“ | mail -s „Test“ email@addresse.de eingebe bekomme ich eine E-Mail. Also müsste postfix richtig konfiguriert sein.
    Was mache ich falsch?
    Hoffe kannst mir weiterhelfen.

    MFG Schmidt

    1. Daniel

      debug

      STARTTIME: , ENDTIME: 1583684657, STATE: 6, JOBID: {bf2a67c0-1b90-403e-8017-5558d8e09df7} DETAILS: TARGET: , FST: , LOGIN: , DOMAIN:

      1. Manfred

        Hallo Daniel,

        bei mir sieht die Debug Ausgabe wie folgt aus:

        STARTTIME: , ENDTIME: 1583622993, STATE: 6, JOBID: {0ede1a62-4470-4348-ab72-3ff62404f334}
        DETAILS: TARGET: srv/backup, FST: cifs, LOGIN: back, DOMAIN: dom
        PROCESSED: 208.9 GB, READ: 9.0 GB, TRANSFERRED: 621512848
        SPEED: 278.8, SOURCELOAD: 87, NETLOAD: 8, TARGETLOAD: 17
        DURATION: 00:01:31, START: Sonntag, 08 März 2020 00:15:02, END: Sonntag, 08.03.2020 00:16:33, STIME: 00:15:02, ETIME: 00:16:33
        ERRLOG:

        Was hier auffällt ist dass bei dir sämtliche Job Details fehlen!
        Wie schauen denn die Job Details im Veeam direkt aus, wenn du dort auf deinen Job gehst…?

        Schöne Grüße
        Manfred

        1. Daniel

          sorry irgendwie ist etwas schiefgegangen der Debug sieht wie folgt aus:

          STARTTIME: , ENDTIME: 1583684657, STATE: 6, JOBID: {bf2a67c0-1b90-403e-8017-5558d8e09df7} DETAILS: TARGET: , FST: , LOGIN: , DOMAIN:

          1. Manfred

            Der Debug Log sieht für mich eigentlich OK aus!
            Kommentier Mal im veeam_mail.sh Script die vorletzte Zeile mit „rm $TEMPFILE“ und schau dann ob ein solches existiert und wie es aussieht.
            Du kannst es dann manuell mit „cat Dateiname|sendmail -t“ los schicken.

          2. Manfred

            Bitte unbedingt für das debuggen mit „–bg“ starten!
            Also:

            vee-mail.sh –bg

      2. Manfred

        PS: kleinen typo bei STARTTIME (hatte STARTIME drinnen stehen) habe ich in der 0.5.12 Version korrigiert. Hat aber keinerlei Auswirkungen auf den Betrieb vom Script.

        1. Daniel

          irgendwie wenn ich den debug hier einfüge und absende sieht alles anders aus

          STARTTIME: , ENDTIME: 1583684657, STATE: 6, JOBID: {bf2a67c0-1b90-403e-8017-5558d8e09df7} DETAILS: TARGET: , FST: , LOGIN: , DOMAIN:

        2. Daniel

          Habe nun „rm $TEMPFILE“ auskommentiert leider wird kein Tempfile angelegt. Sollte dies in /opt/vee-mail geschehen?

          1. Manfred

            Wenn du eine Zeile davor „echo $TEMPFILE“ rein schreibst, dann siehst du wo.
            Gewöhnlich /tmp

        3. Daniel

          meinst du also
          bash vee-mail.sh -bg

          1. Manfred

            Zwei minus vor bg!

          2. Daniel

            wenn ich das skript mit –bg ausführe bekomme ich eine e-mail.

          3. Manfred

            Ist der Befehl /usr/bin/nohup vorhanden?
            Der wird da an der Stelle mit ausgeführt.

          4. Daniel

            ich weiß nicht warum aber wenn ich das skript in past Job einfüge läuft es nun ohne Probleme.

            Danke für die prima Arbeit und Hilfe.

            MFG

          5. Manfred

            Ok, das ist klar – genau da gehört es hin! 🙂
            Es soll ja automatisch am Ende vom Backup Job ausgeführt werden… Dafür steht der past Job.

Schreibe einen Kommentar