Am 20.05.2022 bekommt das Forum ein neues Update. Ab ca. 12:00 ist das Forum nicht mehr erreichbar und wird spätestens am 21.05. wieder online sein. Alle bis dahin erstellten Daten bleiben natürlich erhalten.

Vielen Dank für euer Verständnis. Bei Rückfragen: webmaster@linux-club.de (Christian)

[gelöst] Cronjob mit Mailzustellung

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
Olli
Newbie
Newbie
Beiträge: 32
Registriert: 26. Okt 2004, 13:16
Kontaktdaten:

[gelöst] Cronjob mit Mailzustellung

Beitrag von Olli »

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
Zuletzt geändert von Olli am 3. Mär 2006, 17:41, insgesamt 3-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

script schreiben:

Pseudocode:

Code: Alles auswählen

if  folder contains specific file
then
   MAILTEXT="hier den tollen Mailtextaufsetzen"
   send $MAILTEXT to $USER
fi
und das im Cronjob aufrufen

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
Olli
Newbie
Newbie
Beiträge: 32
Registriert: 26. Okt 2004, 13:16
Kontaktdaten:

Beitrag von Olli »

Hi teXpert,

danke für die schnelle Hilfe!

MfG

Olli
Benutzeravatar
Olli
Newbie
Newbie
Beiträge: 32
Registriert: 26. Okt 2004, 13:16
Kontaktdaten:

Beitrag von Olli »

Hi texPert,

ich habe jetzt folgendes Versucht:
den Code habe ich in eine neue Datei gesteckt:

Code: Alles auswählen

#!/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: Alles auswählen

./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
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

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
Benutzeravatar
Olli
Newbie
Newbie
Beiträge: 32
Registriert: 26. Okt 2004, 13:16
Kontaktdaten:

Beitrag von Olli »

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
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

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
Benutzeravatar
Olli
Newbie
Newbie
Beiträge: 32
Registriert: 26. Okt 2004, 13:16
Kontaktdaten:

Beitrag von Olli »

Hi,

genau das ist es!

Vielen Dank für die Hilfe *freu*

MfG

Olli
Antworten