Bash shell skripting

  • Hallo!

    für mein praktikum muss ich einen cronjob programmieren, der im grunde nix anderes machen muss als ein php-skript aufzurufen. so weit so einfach. dieses php-skript hat

    * keine ausgabe wenn es keine änderungen, etc. durchführt
    * eine ausgabe bei fehlern( problem mit der datenbank anbindung), und wenn es "was macht"

    jetzt denk ich mir es kann doch kein problem sein, die php-skript ausgabe in eine (BASH)variable zu schreiben und im cronjob zu prüfen ob etwas drinnen steht. wenn das der fall ist, dann soll eine mail mit ebendiesem inhalt versendet werden.

    eine änderung des php-skriptes würde ich mir _sehr_ gerne ersparen.

    kann mir bei dem problem wer weiterhelfen?

    lg, bimbo

  • Zitat von bimbo


    jetzt denk ich mir es kann doch kein problem sein, die php-skript ausgabe in eine (BASH)variable zu schreiben und im cronjob zu prüfen ob etwas drinnen steht. wenn das der fall ist, dann soll eine mail mit ebendiesem inhalt versendet werden.

    nein, ist kein poblem

    VARIABLE = `deinphpscrip`

    ueberpruefen ob die variable gefuellt ist und fertig. umgebungsvariablen haben aber auch limits.

    die schoener variante waere:

    mittels mktemp ein temporaeres file anlegen (man mktemp)

    TMPFILE = `mktemp ...`

    die ausgabe deines phpscripts in diese datei umleiten

    pruefen ob was in der datei steht

    mittels mail (man mail) verschicken

    temporaeres file loeschen

    den rest musst du selber machen da ich nie mit der bash gearbeitet habe, bin noch ein tcsh user und sehe auch keinen grund zum umstieg (oder darueber zu diskutieren)

    lg
    zhan

  • Zitat von bimbo


    ähem... wie machet man das genau?

    da gibts viele moeglichkeiten.

    zb gibt dir
    find <filename> -printf "%s"
    die anzahl der bytes zurueck.

  • Zitat von Plantschkuh!

    test -s wär auch eine Möglichkeit. Generell kann test ganz viele tolle Sachen.

    oh, cool, dachte das ueberprueft nur ob das file existiert ... aber manpage lesen macht schlau :)

    diese moeglichkeit is dann ja wohl die beste

  • Wieso so kompliziert. Wenn du keine Ausgabe lieferst, macht der crond eh nix. nur wenn der Cronjob einen output hat, dann schick dir der crond eine mail.

    einfach das php skript aufrufen und cron den rest machen lassne :verycool:

    p2k

    ESC :x

  • Zitat von p2k

    Wieso so kompliziert. Wenn du keine Ausgabe lieferst, macht der crond eh nix. nur wenn der Cronjob einen output hat, dann schick dir der crond eine mail.

    einfach das php skript aufrufen und cron den rest machen lassne :verycool:

    p2k

    versteh ich net ganz was du meinst. der cornd schickt automatisch mails, wenn der cronjob eine ausgabe macht?

    ich habs jetzt ungefähr so, und das funkt:

    TEMPFILE=/tmp/blah
    php -q -f skript.php | grep [a-Z] > $TEMPFILE

    if test -s $TEMPFILE
    ...
    fi

    rm $TEMPFILE

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!