Zu grosse Textdatei?
Roland
- perl
Hallo,
ich benutze ein Webfrontend, welches Logfiles ausgibt. Jetzt habe ich das Problem, dass sobald die Datei grösser als ca 11 MB ist, nichts angezeigt wird. Hat dafür jemand ein Erklärung? Danke.
Hi,
ich benutze ein Webfrontend, welches Logfiles ausgibt. Jetzt habe ich das Problem, dass sobald die Datei grösser als ca 11 MB ist, nichts angezeigt wird. Hat dafür jemand ein Erklärung? Danke.
ja: Irgendwas läuft nicht richtig. Bei einer derart pauschalen Problembeschreibung ist eine weniger pauschale Antwort leider schwer möglich.
Cheatah
ja: Irgendwas läuft nicht richtig. Bei einer derart pauschalen Problembeschreibung ist eine weniger pauschale Antwort leider schwer möglich.
Cheatah
Ich benutze ein Perl/Cgi-Skript welches den Inhalt einer Textdatei ausliest und im Browser darstellt. Ist die Datei aber grösser als ca. 11 MB wird nichts dargestellt und es kommt auch keine Fehlermeldung.
Roland
hi,
Ich benutze ein Perl/Cgi-Skript welches den Inhalt einer Textdatei ausliest und im Browser darstellt. Ist die Datei aber grösser als ca. 11 MB wird nichts dargestellt und es kommt auch keine Fehlermeldung.
Vielleicht kommt ein timeout? Guck mal ins log...
Btw, 11MB ist ja auch ein bissl viel, auch bei 100Mbit/s
Viele Grüße, Rolf
Im Log ist nichts zu erkennen
Im Log ist nichts zu erkennen
Tja, dann kann man nichts machen.
Struppi.
Hi,
Im Log ist nichts zu erkennen
in Deiner Nase befinden sich noch ziemlich viele Würmer, die einzeln herauszuziehen ich nicht die geringste Lust verspüre. Möglicherweise möchtest Du sie gesammelt präsentieren?
Cheatah
Hi,
Im Log ist nichts zu erkennen
in Deiner Nase befinden sich noch ziemlich viele Würmer, die einzeln herauszuziehen ich nicht die geringste Lust verspüre. Möglicherweise möchtest Du sie gesammelt präsentieren?
Cheatah
Wenn Du nicht sagen kannst was Du wissen musst lass es sein.
Hallo Roland,
Wenn Du nicht sagen kannst was Du wissen musst lass es
sein.
Nein, nein. So laeuft das nicht. *Du* willst etwas von *uns*,
nicht umgekehrt. *Du* musst die notwendigen Informationen von
selber liefern. Hier ist eine *Bring*-Schuld, keine
Hol-Schuld. Wir sind nicht in der Schule.
Gruesse,
CK
Hi,
Wenn Du nicht sagen kannst was Du wissen musst lass es sein.
ich habe oft genug gesagt, was eine vernünftige Problembeschreibung zu beinhalten hat. Wenn Du nicht in der Lage bist, dies aus dem Archiv zu ermitteln, dann töne hier bitte nicht groß rum.
Cheatah
Wenn Du nicht sagen kannst was Du wissen musst lass es sein.
genau, dann lassen wir es sein.
Hallo Roland,
Ich benutze ein Perl/Cgi-Skript welches den Inhalt einer
Textdatei ausliest und im Browser darstellt. Ist die Datei
aber grösser als ca. 11 MB wird nichts dargestellt und es
kommt auch keine Fehlermeldung.
Durch stumpfe Wiederholung des Problems wird die Beschreibung
nicht besser :) Was hast du bereits ausprobiert? Wie sieht
dein Quelltext aus? Welche Perl-Version benutzt du? Was sind
das fuer Daten? Usw., usw.
Gruesse,
CK
Hallo Roland,
Ich benutze ein Perl/Cgi-Skript welches den Inhalt einer
Textdatei ausliest und im Browser darstellt. Ist die Datei
aber grösser als ca. 11 MB wird nichts dargestellt und es
kommt auch keine Fehlermeldung.Durch stumpfe Wiederholung des Problems wird die Beschreibung
nicht besser :) Was hast du bereits ausprobiert? Wie sieht
dein Quelltext aus? Welche Perl-Version benutzt du? Was sind
das fuer Daten? Usw., usw.Gruesse,
CK
Perl-Version ist die 5.6.1
Die Daten bestehen aus einem automatisch generierten Logfile
Auszug aus dem Quelltext:
open (LOGFILE, "<$logfilepath") || die ("Can't open logfile $logfilepath: $! \n");
while (<LOGFILE>) {
@log = split(/#/, $_);
print "<TR BGCOLOR=$colno>";
print "<TD NOWRAP> $i </TD>";
foreach $c (@CLF_LogColumns) {
if ($cols_to_show{$c} ne "false") {
$tmp_str = $sorted_lines[$i][1][$CLF_type{$c}];
if ($sorted_lines[$i][1][$CLF_type{'proto'}] == 6) {
$proto = "tcp";
} elsif ($sorted_lines[$i][1][$CLF_type{'proto'}] == 17) {
$proto = "udp";
} else {
$proto = "icmp";
};
#
# resolve port and protocol numbers
#
if (($resolve_port) && ($c =~ /src-port|dst-port|nat-sport|nat-dport/ )) {
if (defined $LogMgr_ServiceByProtoPort{$tmp_str}{$proto}) {
$tmp_str = $LogMgr_ServiceByProtoPort{$tmp_str}{$proto};
} elsif (defined $LogMgr_ServiceByPort{$tmp_str}) {
$tmp_str = $LogMgr_ServiceByPort{$tmp_str};
};
};
if (($resolve_port) && ($c =~ /proto/ )) {
if (defined $LogMgr_ProtocolByNumber{$tmp_str}) {
$tmp_str = $LogMgr_ProtocolByNumber{$tmp_str};
};
};
#
# resolve ip address
#
if ($c =~ /origin|src-ip|dst-ip|nat-src|nat-dst/) {
$src = $tmp_str;
if (($resolve_ip) && (defined $LogMgr_HostByAddress{$src})) {
$tmp_str = $LogMgr_HostByAddress{$src};
} elsif ($resolve_dns) {
$tmp_str = gethostbyaddr(inet_aton($src), AF_INET);
$tmp_str = $src if (!defined $tmp_str);
};
};
print "<TD NOWRAP> $tmp_str </TD>";
};
};
print "</TR>\n";
NEXT_OUTPUT:
$i++;
last if $i >= $showlines;
};
print "</TABLE>\n\n";
Hi,
es wird ein Browser-Timeout sein!
Warum machst Du solche heftigen Berechnungen erst zur Anforderungszeit? Es gibt Statistikprogramme usw. die das z.B. mittels Cronjob vorberechnen können.
Gruß
Reiner
Hi,
Perl-Version ist die 5.6.1
Die Daten bestehen aus einem automatisch generierten Logfile
Fueg mal ein non-parsed-header ein und geb alles live aus.
$| = 1;
ist dein Freund.
Auszug aus dem Quelltext:
open (LOGFILE, "<$logfilepath") || die ("Can't open logfile $logfilepath: $! \n");
while (<LOGFILE>) {
@log = split(/#/, $_);
print "<TR BGCOLOR=$colno>";
print "<TD NOWRAP> $i </TD>";
Lass die Tables weg!!!!
bei der Menge an Daten macht der Browser schlapp bei der Darstellung der Table.
Geb mal deinen Browser vielleicht mehr Memory im cache und RAM..?
(Wenn die Übertragung und Berechnung nicht schnell genug waere, dann wuerdest du ein Timeout-fenster vom Browser bekommen)
Ciao,
Wolfgang