Verzeichnis überwachen Upload und eine Benachrichtung erhalten

marlow

Benutzer
Mitglied seit
08. Jan 2015
Beiträge
260
Punkte für Reaktionen
6
Punkte
18
Hallo Leute,

möchte einen Ordner Upload überwachen und eine Nachricht erhalten sobald eine Datei hochgeladen wird.
Benachrichtungen via Mail ist eingerichtet und funktioniert.

Danke

Gruß
Marlow
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Ist doch ganz einfach.
Bastel Dir ein Script, das zyklisch in den Ordner guckt und dann eine Mail schickt, sobald da was drin liegt.
 

marlow

Benutzer
Mitglied seit
08. Jan 2015
Beiträge
260
Punkte für Reaktionen
6
Punkte
18
Hallo, danke für den Hinweis, aber wenn ich das wüsste wie sowas aussehen muss hätte ich nicht gefragt ;)
Kannst du mir dabei helfen?
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Gib einem Angler einen Fisch und er hat am Abend zu essen. :eek:
Lehre dem erfolglosen Angler das Fischen und er hat jeden Tag zu essen ... :)

Diese beiden Zeilen nur mal so, um aufzuzeigen, was mir wichtig ist.
Ich könnte ein fertiges Script hier reinstellen, wenn es aber hakt, dann wird es schwierig, sich zurecht zu finden.
Daher möchte ich das sprichwörtliche 'Silbertablett' eher vermeiden.

Im Prinzip benötigst Du zwei folgende Aufgaben auf LINUX-Basis.
1) Gucke, ob da eine Datei ist
2) Ist eine Datei da, dann schicke eine Mail

Kenntnisse? Ja, bissel Basiswissen, um sich auf der Konsole zu bewegen und mit der Shell zu arbeiten wäre eine feine Geschichte.

Bei mir gibt es einen gemeinsamen Ordner, in dem ich meine Shell-Scripte ablege. Das sind dann meine vielen kleinen Helferlein, mit denen ich auf meiner DS automatisiere. Den Ordner habe ich am PC als Laufwerk verbunden und kann komfortabel mit NOTEPAD++ die Scripte editieren, wenn ich mich nicht auf der Konsole bewegen möchte.

Dort könnte also nun ein Shell-Script 'durchsuche_uploadordner.sh' liegen.
Nehmen wir mal Das Script liegt in /ADMINSCRIPTE ...

Die erste Aufgabe könnte also wie folgt aussehen:
Rich (BBCode):
##### Zuerst gucken, ob Dateien da sind und ggfs. FLAG auf 1 setzen.
export SUCHDIRFLAG=0
for file in /FREIGABE/UPLOAD; do
  if [ -f "${file}" ] ; then
    export SUCHDIRFLAG=1
  fi
done

Wenn es also in /FREIGABE/UPLOAD eine Datei gibt, dann haben wir mit SUCHDIRFLAG schon mal einen Merker gesetzt.
Hat der Merker die '0', dann kann das Script eigentlich sofort verlassen werden.
Hier suche mal, wie Du das erledigen kannst ;)

Wenn der Merker (SUCHDIRFLAG) auf '1' steht, dann geht es weiter.
Um eine Mail zu versenden, erstelle ich typischerweise eine Datei, die Anweisungen und den Body der Mail enthalten.
Da beginnen wir mal mit dem Anfang:
Rich (BBCode):
##### Erzeuge eine Datei, die abschliessend als zu versendende MAIL dient
# Header und Einleitung schreiben
echo From: ABSENDER@DOMAIN.DE>/ADMINSCRIPTE/uploadmail.txt
echo Subject: Inhalt Upload-Ordner /FREIGABE/UPLOAD >>/ADMINSCRIPTE/uploadmail.txt
echo >>/ADMINSCRIPTE/uploadmail.txt
echo Hallo>>/ADMINSCRIPTE/uploadmail.txt
echo >>/ADMINSCRIPTE/uploadmail.txt
echo Hier der zyklische Bericht ueber den Inhalt von /FREIGABE/UPLOAD auf der Diskstation.>>/ADMINSCRIPTE/uploadmail.txt
echo >>/ADMINSCRIPTE/uploadmail.txt

Soweit der Inhalt, um die Mail schön beginnen zu lassen.
Jetzt möchtest Du noch wissen, welche Dateien da so rumliegen:
Rich (BBCode):
# Hier nun den Inhalt des Directory durchsuchen und in das Mailfile schreiben
find /FREIGABE/UPLOAD -type f -name "*" | grep -v '@eaDir'>>/ADMINSCRIPTE/uploadmail.txt


Weil ich die Schönheit der Mail auch noch am Schluss haben möchte:
Rich (BBCode):
# Footer und Abspann schreiben
echo >>$MAILFILE
echo >>$MAILFILE
echo Gruss vom Server-Administrator>>/ADMINSCRIPTE/uploadmail.txt

Das Mailfile /ADMINSCRIPTE/uploadmail.txt kannst Du nun schon mal einsehen und gucken, ob alles so funktioniert hat, wie Du Dir das vorstellst.

Und nun noch Aufgabe zwei von oben, endlich raus mit der Mail :)
Rich (BBCode):
# Das Mailfile wird nun als MAIL versendet
/sbin/sendmail MAILADRESSE@DOMAIN.DE < /ADMINSCRIPTE/uploadmail.txt


So, Damit wünsche ich Dir erstmal viel Spass, um dich damit zurecht zu finden.
Bei mir hat das komplette Script etwa 85 Zeilen. Teile davon, die zwingend nötig sind findest Du oberhalb und sollten, ggfs. mit Anpassungen an Deine Umgebung auch funktionieren. :cool:

Wenn das dann alles funktioniert, dann kannst Du das Script in den Aufgabenplaner einhängen und nach Deinem Gusto zyklisch laufen lassen.
 

marlow

Benutzer
Mitglied seit
08. Jan 2015
Beiträge
260
Punkte für Reaktionen
6
Punkte
18
Hallo und Danke für deine Hilfe,
so könnte ich das auch machen, aber ich habe jetzt doch eine andere Lösung gefunden.
Das Ganze mache ich nun über das Protokoll-Center. Einfach nur in den Benachrichtigung in einem Stichwort z.B. Upload eingeben und schon bekomme ich eine Mail sobald eine Datei Hochgeladen wird. Gut sollten nun 100 Dateien Hochgeladen, dann bekomme ich 100 Mails.
Aber dafür bekomme oder finde ich noch eine Lösung.

Grüße
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Ja, wenn es JETZT so funktioniert, dann ist das gut so.
Kannst Du sicherstellen, dass die Einträge des Herstellers im LOG immer gleich sind?

Bei meinem Ansatz, ja braucht bissel Hirnschmalz, hast Du das Hersteller-Thema nämlich nicht.
 

marlow

Benutzer
Mitglied seit
08. Jan 2015
Beiträge
260
Punkte für Reaktionen
6
Punkte
18
Danke ;)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat