brotherkeeper
Goto Top

Html-Dateien Überwachung

Hallo zusammen,

bezugnehmend auf diesen beitrag: Dateien-Überwachung erweitere ich meine Anfrage um die Spezifizierung von auschließlich html-dateien... benötigt, wird etwas was als script (evt. auch freeware) im hintergrund auf einem der workstations laufen kann...

kann mir jemand helfen oder eine alternative bieten/nennen?

vielen dank

Bee

Content-Key: 124936

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: maretz
maretz Sep 15, 2009 at 06:28:48 (UTC)
Goto Top
Moin,

sorry das ich mir nicht die mühe mache für die Lösung deines Problemes auch noch verschiedene Threads hier durchzulesen... Wie wäre es wenn du einfach mal kurz zusammenfasst was du genau willst? Wenn du dir diese Mühe nicht machen möchtest - warum sollte sich hier jemand die mühe zu machen zu denken und das auch noch aufzuschreiben?
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 06:41:06 (UTC)
Goto Top
natürlich gerne:

Hallo zusammen,

ich benötige fachkundiges Wissen.

Folgende Situation: circa 200 Dateien liegen auf eine Rechner. Diese Dateien werden per batch spätestens alle 15min aktualisiert. Nun möchte ich auf einen anderen rechner im gleichen netzwerk eine html-datei schreiben, welche beim öffnen das alter der Dateien ermittelt/monitort und bei einem Kriterium wie zB "älter als 20 Minuten" entweder eine Mail generiert oder die farbe des textes ändert oder sich anderweitig visuell bemerkbar macht... Es kann auch reiner Text sein keine klickibuntimist (aber in .htm)

kannst du etwas damit anfangen?
Member: nxclass
nxclass Sep 15, 2009 at 07:00:48 (UTC)
Goto Top
Zitat von @brotherkeeper:
(aber in .htm)

.. können auf dem Rechner mit den vielen Dateien Scripte ausgeführt werden (z.B. PHP) ?
.. besitzt er einen FTP Zugang ?
.. werden bei der Aktualisierung Log Dateien geschrieben ?

Ich glaube ich verstehe nicht ganz was das soll !?
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 07:06:06 (UTC)
Goto Top
Zitat von @nxclass:
> Zitat von @brotherkeeper:
> ----
> (aber in .htm)

.. können auf dem Rechner mit den vielen Dateien Scripte
ausgeführt werden (z.B. PHP) ?

sollte gehen... schwebt dir etwas besonderes (testbaes) vor?

.. besitzt er einen FTP Zugang ?

ja

.. werden bei der Aktualisierung Log Dateien geschrieben ?

nein, wäre aber eine interessante alternative...
Member: Woolfsmann
Woolfsmann Sep 15, 2009 at 07:43:11 (UTC)
Goto Top
Hi,

hier ne Perl Variante.

#!/usr/bin/perl
use strict;
use warnings;
use DirHandle;

my $dir_path = 'c:/temp';  

print "<html>\n<head>\n\t<title>Älter 15 Min ?</title>\n</head>\n\t<body>\n";  
print "<table><tr><td>Dateiname</td><td>Ja</td><td>Nein</td></tr>";  
if(my $dir = DirHandle->new($dir_path)) {

	while(my $dir_item = $dir->read()) {
		next if $dir_item =~ /^\.\.?$/;
		my $mod_time = (stat("$dir_path/$dir_item"))[9];  
		my $temp = $mod_time + 900;
		my $temp2 = time;
		if ($temp > $temp2 )
		{
			print "<tr><td>$dir_item</td><td></td><td bgcolor=\"#7FFF00\">X</td></tr>\n";  
		}
		else
		{
			print "<tr><td>$dir_item</td><td bgcolor=\"red\">X</td><td></td></tr>\n";  
		}
	}
	$dir->close() or die $!;
}
else 
{
	die "Error on opening directory $dir_path: $!\n";  
}
print "</table></body></html>\n";  

gruß
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 08:02:22 (UTC)
Goto Top
listet dieses script nun alle dateien auf die älter als 15min und einem bestimmten ordner sind auf?
Member: Woolfsmann
Woolfsmann Sep 15, 2009 at 08:10:34 (UTC)
Goto Top
Hi,

das Skript listet alle Dateien aus einem Order auf, in diesem Fall "c:\temp", und macht ein Rotes Feld mit Kreuz drin dahin wenn sie älter als 15 Minuten ist und ein Grünes Feld mit nem Kreuz drin wenn sie jünger als 15 Minuten ist.

Wenn du die Dateien die jünger als 15 Minuten sind nicht aufgelistet haben möchtest dann lösch die Zeile 19.

Im moment must du das noch so aufrufen :

aelter15.pl > aelter15.html

Wenn du das auf nen Webserver legst der Perl versteht kann man das gerade noch zu nem CGI Skript umbauen fals gewünscht.

gruß
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 08:17:43 (UTC)
Goto Top

Im moment must du das noch so aufrufen :

aelter15.pl > aelter15.html
verstehe ich nicht...

face-sad
Member: Woolfsmann
Woolfsmann Sep 15, 2009 at 08:31:38 (UTC)
Goto Top
Macht nix, es sei den du möchtest unbedingt ;)

Du möchtest ne htm Datei haben. Einfach so ist die htm Datei aber Statisch. Da ändert sich nichts wenn die Dateien in dem Ordner sich ändern.

Also must du entweder auch über ne Batchdatei die htm Datei aktualisieren. Dafür müstest du das erste Skript was ich geschrieben habe in eine Datei speichern. z.B. in aelter15.pl .
Um daraus ein htm Datei zu machen Schreibst du eine Batch Datei in der Drinsteht

aelter15.pl > aelter15.htm

Und diese Batchdatei läst du über geplante Tasks regelmäßig laufen.
Dann steht in aelter15.htm dein gewünschtes ergebniss.

Wenn du nen Webserver hast würde sich eine Variante über ein CGI Skript anbieten.

Dann nimst du diesen Quelltext
#!c:/Perl/bin/perl.exe
use strict;
use warnings;
use DirHandle;
# Ordner in dem Gesucht wird
my $dir_path = 'c:/temp';  
#HTML Header
print "Content-type: text/html\n\n";  
print "<html>\n<head>\n\t<title>Älter 15 Min ?</title>\n</head>\n\t<body>\n";  
#Tabellen aufbau
print "<table><tr><td>Dateiname</td><td>Zu Alt?</td></tr>";  
if(my $dir = DirHandle->new($dir_path)) {
	#Für jede Datei in dem Ordner
	while(my $dir_item = $dir->read()) {
		#Nächste wenn . oder ..
		next if $dir_item =~ /^\.\.?$/;
		#Auslesen der Geändert Timestamps
		my $mod_time = (stat("$dir_path/$dir_item"))[9];  
		# 15 Minuten auf den Geändert Timestap draufrechnen
		my $temp = $mod_time + 900;
		#Vergleichs Timestamp der Aktuellen Zeit
		my $temp2 = time;
		#Abfrage ob Älter als 15 Minuten 
		if ($temp < $temp2 )
		{
			#Aufschreiben der Dateien die Älter sind
			print "<tr><td>$dir_item</td><td bgcolor=\"red\"><center>X</center></td></tr>\n";  
		}
	}
	$dir->close() or die $!;
}
else 
{
	die "Error on opening directory $dir_path: $!\n";  
}
print "</table></body></html>\n";  

und legst Ihn auf den Webserver in ein Verzeichnis wo Skripte ausgeführt werden dürfen.


Alle meine Lösungen gehen aber NUR wenn da ein Perl Interpreter Installiert ist.

gruß
Woolfsmann
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 08:41:59 (UTC)
Goto Top
Alle meine Lösungen gehen aber NUR wenn da ein Perl Interpreter
Installiert ist.
gibt es da ein beonderer? kann ich "nachholen"...

hast du eine ahnung wie man das mit onboard mitteln eventuel noch machen könnte?
Member: Woolfsmann
Woolfsmann Sep 15, 2009 at 08:48:26 (UTC)
Goto Top
Bei Windows ist es Activeperl ...bzw irgendein mod_perl oder so bei nem Apache.

Unter Linux ist es dabei.

Bei Windows boardmitteln kann ich dir nicht weiterhelfen, da gibt es hier andere die da deutlich mehr Ahnug haben ;)

gruß
Woolfsman
Member: brotherkeeper
brotherkeeper Sep 15, 2009 at 08:54:31 (UTC)
Goto Top
Zitat von @Woolfsmann:
Bei Windows ist es Activeperl ...bzw irgendein mod_perl oder so bei
nem Apache.

Unter Linux ist es dabei.

Bei Windows boardmitteln kann ich dir nicht weiterhelfen, da gibt es
hier andere die da deutlich mehr Ahnug haben ;)

face-sad die melden sich aber nicht...

gruß
Woolfsman

danke dir
Member: nxclass
nxclass Sep 15, 2009 at 09:19:21 (UTC)
Goto Top
Es ist natürlich auch möglich eine statische HTML Datei zu erzeugen mit Perl (oder PHP) - dann müsste allerdings das *.pl oder *.php Script nach dem Kopiervorgang (am ende der batch) ausgeführt werden.

Wenn Du das Script über die Kommandozeile (batch) ausführst, braucht man keine Änderungen am Apache (oder was auch immer) zu machen.
für PHP zB.:
c:\ordner\php-cgi.exe pfad\meinscript.php > pfad\ausgabe.html
Member: kimiko
kimiko Sep 15, 2009 at 09:26:08 (UTC)
Goto Top
Schau die mal Log Parser von MS an, das kann eine ganze menge, z.B. Filesysteme parsen, sql, und u.a. html ausgeben. Du must nur noch die Farben ins htm reinbringen.