horst-makake
Goto Top

Script zur Ordnerüberwachung als Windows Service

Hallo zusammen,
ich versuche grad in Perl ein Skript zu erstellen, dass ich dann als Service starten kann - da ich relativer Newbie in Perl bin - hier mein Schrei nach Hilfe face-wink
Das Skript soll folgendes können:
1. einen Ordner überwachen
2. sobald dort xml-files reinlaufen, diese (sofern noch nicht kopiert) in einen anderen Ordner kopieren
3. und das permanent

Nachfolgend mein Skript:
use strict;
use File::Copy;

my $srcdir = "C:\\Test";
my $destdir = "C:\\Test1";
my $file;
my $int;

$int = 0;

search($srcdir, $destdir, $file);


sub search {
if (! -d $destdir){
nicht oeffnen: $!";
}

$!";


while($file = readdir(DIR)){

if ( $file =~ /\.xml$/i ) {

  1. if ( -e "$destdir/$file"){
print "Kopiere Datei: $file";
copy("$srcdir/$file", "$destdir/$file");
}
  1. else {
  2. print "$destdir/$file besteht bereits\n";
  3. }
  4. }
}
closedir(DIR);
sleep(15);
$int = $int +1;
if ($int ==4){
exit}
undef($file);
search($srcdir, $destdir, $file);
}

Das funktioniert auch soweit ... es werden halt immer alle Dateien kopiert. Das Hochzählen von $int und sleep(15) ergibt
ca. 1 Minute Laufzeit - hab ich eingebaut, da ich das Skript als Task eingeplant habe. Ist natürlich nicht komfortabel. Weiterhin
unpraktisch, da die Scriptausführung - dann hoffentlich als Service - gemonitort werden soll.

Ziel soll sein, das Skript als Windows Service per sc create Servicename binPath= ... als Dienst starten zu können.
Das funktioniert jeodch so nicht.

Hat hier irgendwer Erfahrungen - gibt es eventuell schon "Vorlagen"?
Ich weiß wohl, dass man das W32::Daemon dazu nutzen könnte - ist mir zum jetzigen Zeitpunkt jedoch etwas "hoch".

Ich freue mich auf zahlreiche Feedbacks ...

Danke im Voraus!


Grüsse
Horst

Content-Key: 97773

Url: https://administrator.de/contentid/97773

Printed on: April 25, 2024 at 09:04 o'clock