• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Cronjob mit Mailzustellung

Olli

Newbie
Hallo Zusammen,

ich möchte gern ein Cronjob erstellen, der ein bestimmtes Verzeichnis (bsp. /home/dosemu/blabla/) überprüft.
Falls eine Datei in dem Verzeichnis existiert, soll eine Mail ausgeliefert werden, bei der ich den Text selbst gestalten kann.

Hat hier einer ne Idee wie ich sowas realisieren kann?

MfG

Olli
 

TeXpert

Guru
script schreiben:

Pseudocode:

Code:
if  folder contains specific file
then
   MAILTEXT="hier den tollen Mailtextaufsetzen"
   send $MAILTEXT to $USER
fi

und das im Cronjob aufrufen
 
OP
Olli

Olli

Newbie
Hi texPert,

ich habe jetzt folgendes Versucht:
den Code habe ich in eine neue Datei gesteckt:
Code:
#!/bin/bash
if /home/dosemu/transdat/*.bak
then
MAILTEXT="Achtung DFÜ-Übertragung fehlgeschlagen..."
send $MAILTEXT to root
fi

Beim Ausführen der Datei, erhalte ich folgende Fehlermeldung:
Code:
./directorycheck.sh: line 2: /home/dosemu/transdat/exp.zip.bak: Permission denied

Wo liegt jetzt noch der Fehler?

Sorry - kenne mich nicht so aus...

MfG

Olli
 
Hey

Das war ja nur als "Pseudocode" gedacht. Da haste ohne Ahnung keine Chanche :lol: :wink:
versuch mal das als Grundlage (habe ich gerade ähnlich in einem anderen Script)


TEMP=/tmp/
VERZ=/verzeichnis/
ZEIT_RDATEI=$TEMP.referenz_zeit_datei
ABSENDER=foobar@example.com
EMPFAENGER=foobar@example.com

if test -f $ZEIT_RDATEI; then
FIND_OPTION="-newer $ZEIT_RDATEI"
else
FIND_OPTION=
fi
DATEIEN=`find $VERZ -type f $FIND_OPTION -print`
if test -n "$DATEIEN"; then
echo Datei $DATEIEN | mail -s "Neue Dateien vorhanden" -r $ABSENDER $EMPFAENGER
# zum prüfen was überhaupt ausgegeben wird
#echo $DATEIEN
else
echo keine neuen Dateien
#hier kannste ja noch ne mail einbauen
fi
touch $ZEIT_RDATEI
exit 0
beim ersten Aufruf werden alle Dateien und auch die Unterverzeichnisse angezeigt. Bei folgenden Aufrufen nu noch diese welche ein neueres Datum haben als die Referenz Zeitdatei.
Falls immer alle angezeigt werden sollen dann nimmt die Datei raus.

By Huflatisch
 
OP
Olli

Olli

Newbie
Hi Huflatisch,

vielen Dank für deine ausführliche Hilfe!

Ein paar Fragen hätte ich noch dazu:

kann ich diese Zeit-Referenz-Datei irgendwie steuern? bzw. muss ich dort was eintragen?

Kann ich das Skript auch dahingehend abändern, dass er nur nachschaut, ob sich in dem Verzeichnis dbf bzw. zip Dateien befinden und dann eine Mail versendet?

MfG

Olli
 
Hey

Die Referenzdatei ist nur eine leere Datei wobei das Erstellungdatum von Beteudung ist
if test -f $ZEIT_RDATEI; then
FIND_OPTION="-newer $ZEIT_RDATEI"
else
FIND_OPTION=
fi
.
touch $ZEIT_RDATEI
kannste natürlich weglassen wenn dus nicht brauchts

DATEIEN=`find $VERZ -type f -print |grep zip`
und schon sucht der nur nach zip Dateien unabhänig des Datums

Dann alles per cron, und du bekommst emails solange ne zip darin ist

By Huflatisch
 
Oben