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
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 ) {
copy("$srcdir/$file", "$destdir/$file");
}
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
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
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){
}
while($file = readdir(DIR)){
if ( $file =~ /\.xml$/i ) {
- if ( -e "$destdir/$file"){
copy("$srcdir/$file", "$destdir/$file");
}
- else {
- print "$destdir/$file besteht bereits\n";
- }
- }
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 97773
Url: https://administrator.de/contentid/97773
Printed on: April 25, 2024 at 09:04 o'clock