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
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)
Vielen Dank für euer Verständnis. Bei Rückfragen: webmaster@linux-club.de (Christian)
[gelöst] Cronjob mit Mailzustellung
Moderator: Moderatoren
[gelöst] Cronjob mit Mailzustellung
Zuletzt geändert von Olli am 3. Mär 2006, 17:41, insgesamt 3-mal geändert.
script schreiben:
Pseudocode:
und das im Cronjob aufrufen
Pseudocode:
Code: Alles auswählen
if folder contains specific file
then
MAILTEXT="hier den tollen Mailtextaufsetzen"
send $MAILTEXT to $USER
fi
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"
Hi texPert,
ich habe jetzt folgendes Versucht:
den Code habe ich in eine neue Datei gesteckt:
Beim Ausführen der Datei, erhalte ich folgende Fehlermeldung:
Wo liegt jetzt noch der Fehler?
Sorry - kenne mich nicht so aus...
MfG
Olli
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
Code: Alles auswählen
./directorycheck.sh: line 2: /home/dosemu/transdat/exp.zip.bak: Permission denied
Sorry - kenne mich nicht so aus...
MfG
Olli
-
- Hacker
- Beiträge: 543
- Registriert: 5. Apr 2004, 22:40
Hey
Das war ja nur als "Pseudocode" gedacht. Da haste ohne Ahnung keine Chanche
versuch mal das als Grundlage (habe ich gerade ähnlich in einem anderen Script)
Falls immer alle angezeigt werden sollen dann nimmt die Datei raus.
By Huflatisch
Das war ja nur als "Pseudocode" gedacht. Da haste ohne Ahnung keine Chanche


versuch mal das als Grundlage (habe ich gerade ähnlich in einem anderen Script)
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.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
Falls immer alle angezeigt werden sollen dann nimmt die Datei raus.
By Huflatisch
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
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
-
- Hacker
- Beiträge: 543
- Registriert: 5. Apr 2004, 22:40
Hey
Die Referenzdatei ist nur eine leere Datei wobei das Erstellungdatum von Beteudung ist
Dann alles per cron, und du bekommst emails solange ne zip darin ist
By Huflatisch
Die Referenzdatei ist nur eine leere Datei wobei das Erstellungdatum von Beteudung ist
kannste natürlich weglassen wenn dus nicht brauchtsif test -f $ZEIT_RDATEI; then
FIND_OPTION="-newer $ZEIT_RDATEI"
else
FIND_OPTION=
fi
.
touch $ZEIT_RDATEI
und schon sucht der nur nach zip Dateien unabhänig des DatumsDATEIEN=`find $VERZ -type f -print |grep zip`
Dann alles per cron, und du bekommst emails solange ne zip darin ist
By Huflatisch