emails-senden aus Script, das in Cronjob eingebunden ist

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von murxx, 13.12.2007.

  1. murxx

    murxx murxx

    Dabei seit:
    13.12.2007
    Beiträge:
    4
    Zustimmungen:
    0
    :hilfe2:

    Ich habe folgendes Problem:

    Ich habe ein Shell-Script geschrieben, welches eine Replikation zwischen verschiedenen Maschinen anstoesst. In diesem Script (replicate.sh) wird eine email an meinen User murxx@test.at geschickt (mittels Unix "mail"-Funktion), sobald ein Fehler auftritt (es werden hierbei zwei Typen von emails verschickt, je nachdem, welcher Fehler aufgetreten ist).

    Das ganze funktioniert auch ganz wunderbar, wenn ich das Script auf der Kommandozeile ausfuehre.

    Jetzt hab ich es allerdings in einen cronjob eingebunden, sodass das Script automatisch alle 5 Minuten laeuft:
    */5 * * * * replicate.sh

    Das Problem ist nun, dass die emails, die in dem "replicate.sh" script geschickt werden sollen, nicht mehr ankommen - nur die von crontab standardmaessig verschickten emails erreichen ihr Ziel.

    Kann mir jemand helfen, wie es funktioniert, dass die emails aus dem Script wieder geschickt werden? ?(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 13.12.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Überprüfe mal die Pfade in deinem Script.
    Cronjobs laufen nicht in der interaktiven Shell, deshalb ist die in der Loginshell gesetzte Variable PATH nicht die gleiche.
    Setze eventuell die PATH in der Crontab, oder im Script richtig, oder verwende für alles volle Pfadangaben.
    Generiere dir ein Script als test, welches eine mail sendet und schau was passiert.

    Gruß Wolfgang
     
  4. murxx

    murxx murxx

    Dabei seit:
    13.12.2007
    Beiträge:
    4
    Zustimmungen:
    0
    Hm...
    Ich hab mir ein Test-file mit dem folgenden Inhalt geschrieben und in die Cronjobs gehaengt:

    #!/bin/ksh
    mail -s "Test email aus Cronjob" murxx@test.at
    echo "This is a test"

    Bei diesem bekomme ich regelmaessig ein email...
    Dieses liegt im selben Verzeichnis wie das eigentliche Script "replicate.sh" - in diesem wird auch nie das Verzeichnis gewechselt... Beide werden mit dem gleichen User ausgefuehrt...
     
  5. #4 Wolfgang, 13.12.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Also ohne entsprechende Skriptstellen zu sehen, wird das hier nur ein Spekulieren.
    Und dazu habe ich keine Lust. ;)
     
  6. murxx

    murxx murxx

    Dabei seit:
    13.12.2007
    Beiträge:
    4
    Zustimmungen:
    0
    Also hier ein Ausschnitt aus meinem Script - das ganze hier rein zu stellen waere wohl doch etwas zu viel, dies ist der Teil, in dem das email gesendet werden soll... Ich hoffe, das passt so - wie gesagt, das Script liegt im gleichen Verzeichnis wie mein test-Script, es hat die gleichen Berechtigungen wie das test-Script. Zusaetzlich hab ich in mein test-Script noch "cd `dirname $0`; export INITDIR=`pwd`" eingebaut - das Test-email kommt immer noch an, das andere noch immer nicht:

    Code:
    #!/bin/ksh
    
    set +u
    unset env
    
    cd `dirname $0`
    export INITDIR=`pwd`
    
    TIMESTAMP=`date +%Y%m%d_%H%M`
    HOST=`hostname`
    env=$1
    target=$2
    env_short="`echo $env | sed 's|\(.*\)/||g'`"
    
    Start_Replication automatic $HOST $target:$env $env "2>&1 | tee -a 
    log_${env_short}.txt"   # Start up replication
    
    if [ "$?" != "0" ];          # Check return code
    then
       echo "Problems during replication occurred!"
       cat log_${env_short}.txt | mail -s "Replication errors on $HOST for environment $env" "murxx@test.at"
    elif [ -n "`cat log_${env_short}.txt | grep \"symlink has no referent\"`" ];
    then
       cat log_${env_short}.txt | grep -v "failed" | mail -s "Replication SUCCESSFUL, but SYMLINKS with no referent found on $HOST for environment $env" "murxx@test.at"
       echo "Successful replication but problematic sumlinks found!"
       echo "`date`: from $HOST to $target:$env" >> history_${env_short}
    else
       cat log_${env_short}.txt | grep -v "failed" | mail -s "Replication SUCCESSFUL on $HOST for environment $env" "murxx@test.at"
       echo "Successful replication!"
       echo "`date`: from $HOST to $target:$env" >> history_${env_short}
    fi
    
    Soll ich noch mehr aus dem Script hier angeben? (Die Funktion "Start_Replication" ruft lediglich ein rsync-Kommando auf)

    Hier zum Vergleich mein test-Script:
    Code:
    #!/bin/ksh
    cd `dirname $0`
    export INITDIR=`pwd`
    mail -s "Test email aus Cronjob mit dirname-change" "murxx@test.at"
    echo $PATH
    echo "This is a test"
    touch /tmp/doris_test_file
    :(
     
  7. murxx

    murxx murxx

    Dabei seit:
    13.12.2007
    Beiträge:
    4
    Zustimmungen:
    0
    Hab das Problem entdeckt!
    Im crontab war ein anderer Mail-Empfaenger eingestellt, der hat scheinbar (warum auch immer) meinen Script-Mail-Empfaenger ueberschrieben.
    Jetzt hab ich das "MAILTO=" entfernt und es funktioniert.

    Danke trotzdem!
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

emails-senden aus Script, das in Cronjob eingebunden ist

Die Seite wird geladen...

emails-senden aus Script, das in Cronjob eingebunden ist - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. sh Script zum Autostart

    sh Script zum Autostart: hallo liebe Mitglieder, wenn ich unter Linux eins meiner Shell Skripte im Autostart haben will nutze ich immer die @reboot Funktion im crontab....