Filesystem-Watcher leicht gemacht
Geschrieben von: Herbert Hahn 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:
InstallationDie 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. KonfigurationIm 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 ScriptWir 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ßbemerkungWir 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. Verwandte Artikel
Automation - WSH versus Wget Links zu anderen SitesWenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |