Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Filesystem-Watcher leicht gemacht

Geschrieben von: Herbert Hahn
Kategorie: Server

This printed page brought to you by AlphaSierraPapa

Dieser Artikel zeigt wie man mit Bordmitteln plus eines Freewaretools einen kleinen Service realisiert, der per E-Mail eine Verständigung schickt, wenn in einem bestimmten Verzeichnis (hier ein FTP-Verzeichnis) ein File landet.

Dazu verwende ich:

  1. Das Freewaretool Filenotify von xtware.com .
  2. Den Windows Scripting Host, kurz WSH, zum Versenden von Emails mittels des SMTP-Service von Windows.

Installation

Die Datei FileNotify.zip einfach in das gewünschte Verzeichnis entpacken. Danach ruft man einfach "FileNotify.exe -install" auf. Das installiert das Programm als Service und man kann es dann unter "Dienste" starten und stoppen.

Damit haben wir einen neuen Dienst der bestimmte Verzeichnisse überwacht.

Konfiguration

Im Verzeichnis von FileNotify befindet sich das Tool "fnAdmin.exe" das verwendet wird um den Dienst zu konfigurieren. Rufen wir nun fnAdmin auf. Als erstes werden wir gefragt, welche Konfigurations-Datei wir verwenden wollen.

Verwenden wir also einfach das als Vorschlag verwendete "FileNotify.txt". Danach erscheint folgendes Fenster:

Hier wird mit einem Klick auf Add ein neuer Überwachungsauftrag erstellt.

Es gibt 2 Optionen: wollen wir über Änderungen an Dateien oder Verzeichnissen informiert werden? Wir wählen "Files" aus.

Weiters müssen wir den Pfad angeben, der überwacht werden soll. Es besteht die Möglichkeit, auch alle Unterverzeichnisse zu überwachen (die darunterliegende Checkbox einfach selektieren).

Nun geben wir an, welche Ereignisse wir überwachen wollen. In unserem Beispiel wählen wir "Creation" aus. Insgesamt stehen 6 Ereignisse zur Auswahl. Danach wählen wir 1 Aktion pro Ereignis (Perform 1 Action(s) at the time)

Und nun folgt die Angabe des Programmes das wir ausführen wollen. In unserem Fall geben wir "cscript (LAUFWERK):\filenotify\mail.vbs %s" an. (Laufwerk = der Pfad ihres FileNotify Verzeichnisses).

Damit hätten wir soweit alles konfiguriert. Danach muß man unter Dienste noch den FileNotify Dienst neu starten. Damit ist die Überwachung fertig konfiguriert.

Das mail.vbs Script

Wir brauchen nun noch ein Script das uns ein Mail sendet.

Sub SendMailCDO(aTo, Subject, TextBody, aFrom)
  Const cdoIIS = 1
  Dim Message
  Set Message = CreateObject("CDO.Message")
  With Message
    .Configuration.Load cdoIIS
    .To = aTo
    .TextBody = TextBody
    .Subject = Subject
    If Len(aFrom) > 0 Then .From = aFrom
    .Send
  End With
End Sub


Set args = WScript.Arguments
if args.Count = 0 then
	liste = "Kein Argument"
else
	liste = ""
	for each argument in args
		cc=cc+1
		liste = liste & cc & " Neue Datei eingelangt auf Ihrem FTP-Space: " & argument & vbCrLf
	next
end if

SendMailCDO "herbert.hahn@softwing.com", "Neuer Content auf dem FTP Server", liste, "office@softwing.com"

Nun, was macht das Script? Zuerst die Funktion zum Versenden der Mail - in diesem Fall ist es sendMailCDO(). Der Funktion wird zuerst die Mailadresse danach der Betreff und der Mailtext, abschließend die Absenderadresse übergeben.

Nach der Funktion beginnt das eigentliche Hauptprogramm. In diesem werten wir die mitgegebenen Argumente aus (siehe Code), was dem Programm in der Konfiguration von FileNotify mittels %s mitgegeben wurde.

Zur Sicherheit habe ich das ganze in eine Schleife gepackt damit wir wirklich alle Argumente geliefert bekommen.

Danach rufen wir unsere Funktion mit den Angaben zur Adresse und Inhalt auf. Fertig.

Schlußbemerkung

Wir haben nun eine voll funktionsfähige Überwachung eines Verzeichnisses auf einem FTP-Server realisiert. Zum Testen einfach mittels Kopieren oder auch mittels FTP-Clientprogrammes eine Datei in dieses Verzeichnis kopieren. Wir sollten dann sofort eine Mail erhalten.

Das gezeigte Beispiel ist nur eine denkbare Variante. Was man mittels dieses Tools und weiteren Scripts anstellen kann, bleibt Ihrer Phantasie überlassen.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

Automation - WSH versus Wget
http:/www.aspheute.com/artikel/20000511.htm
IIS, was machst du gerade?
http:/www.aspheute.com/artikel/20011204.htm
Siteüberwachung mit Scheduled Tasks
http:/www.aspheute.com/artikel/20010419.htm

Links zu anderen Sites

Filenotify
http://www.xtware.com/filenotify/

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.