perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 15
Click for quality!




11.02.2012 / 22:28

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragdatei-existenz prüfen
Seitenanfang
hoi!
ich habe auf einer seite auf einen nicht ständig erreichbaren server verlinkt, dessen status ich prüfen möchte.
naja, dacht ich, machst du mit ner if-abfrage:

if (-e "http://gedichtesammler.dyndns.org/public/bin.da") {
$return = "go";
}

vorher wird return auf stop gesetzt.
blöderweise findet er aber den server so nicht. kann mir da jemand helfen?
die datei bin.da hab ich extra angelegt, und auch was reingeschrieben...

Datum: 28.07.2005-00:47

Beitragre: datei-existenz prüfen
Seitenanfang
Hi,

würde es mal mit LWP::Simple oder LWP:UserAgent probieren. Damit kannst dir Dokumente von anderen Webservern holen und somit denk ich mal auch die Erreichbarkeit testen.

gruss cornhulio

Datum: 28.07.2005-07:43

Beitragre: datei-existenz prüfen
Seitenanfang
ähm...
und das was ich mir da gedacht hab geht nur innerhalb des servers, oder wie?

Datum: 28.07.2005-15:34

Beitragre: datei-existenz prüfen
Seitenanfang
Hi,

das siehst Du genau richtig, weil das Datei-Testoperatoren sind, die sich ihre Informationen aus dem Dateisystem holen. Unter Linux/Unix beispielsweise werden die Inodes gecheckt. Unter Windows bin ich mir nicht sicher, aber ich denke dass perl auch hier die Dateizuordnungstabelle frequentiert.

-uw

Datum: 29.07.2005-15:30

Beitragre: datei-existenz prüfen
Seitenanfang
mit LWP::Simple kann ich zwar herausfinden, dass der server online ist, ist er aber nicht online, hängt sich das script offenbar auf...

#!/usr/bin/perl -w

use CGI qw(:standard) ;
use CGI::Carp qw(fatalsToBrowser);
use LWP::Simple;
use strict;
use warnings;

my $return = "stop";
my $ftp = "stop";
my $content = get("http://gedichtesammler.dyndns.org/public/bin.da");
my $ftpcontent = get("ftp://gedichtesammler.dyndns.org/public/bin.da");

if (defined $content){
$return = "go";
}
if (defined $ftpcontent) {
$ftp = "go";
}


auserdem behauptet der debuger beharrlich, dass an zeile 5 was nicht stimmt:
Prototype mismatch: sub main::head vs ($) at /home/www/htdocs/gedichtesammler.de/cgi-bin/downs.pl line 5 

Datum: 28.07.2005-16:32

Beitragre: datei-existenz prüfen
Seitenanfang
Hallo gedichtesammler,

etwas ähnliches mache ich beim Bildersammeln, indem ich erst die Dateigröße hole, bevor ich das ganze Bild lade.
Wenn die URL nicht erreichbar ist, bricht die Suche nach ca. 30 Sekunden ab und es wird keine Dateigröße übergeben.
Das Timeout ist nicht einstellbar, falls das erforderliche ist, müsstest du mit dem aufwendigeren LWP::UserAgent arbeiten, dort ist das meines Wissens möglich.


#!/usr/bin/perl -w

use strict;
use LWP::Simple;

my @urls = (
'http://www.klinikum-rosenheim.de/sonstiges/kliroinfo/webcam.jpg',
'http://194.118.55.200/record/current.jpg',
'http://www.ep-bergen.de/m1/bild.jpg'
);

foreach my $url (@urls) {

my ($content_type, $document_length, $modified_time, $expires, $server) = LWP::Simple::head($url);
print "URL=$url, Size=$document_length\n";
next unless $document_length;

# Bild holen, abspeichern etc....
}


Datum: 29.07.2005-21:15

-






-
-