text in *.log datei suchen
Alain
- cgi
Moin, sorry dass ich nochmal frage,aber ich kriegs einfach nicht hin nach x-stunden seufz. Also um einfach wie möglich zu fragen: Wie kann ich in einer logdatei nach einem bestimmten text suchen durch ein cgi? oder wie heisst die variable dafür eine log.datei öffnen und nach if(/$etwas/) zu suchen? Für einen kleinen tip oder link wär ich dankbar.
Grüsse vom Alain-- P.S.:Diesmal ohne werbung :)
Hallo Lain!
Wie kann ich in einer logdatei nach einem bestimmten text suchen durch ein cgi?
Was für ein CGI? Meinst du ein in Perl geschriebenes?
Dann findest du hier Hilfe: http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm
Gruss Sven
Moin,
Was für ein CGI? Meinst du ein in Perl geschriebenes?
ja
#!/usr/bin/perl -w print "Content-type: text/html\n\n";
$logfile = "stat.log"; $username = $ENV{'REMOTE_USER'} || 'anyuser';
open(LOG,">$logfile") || die "sorry $!";
das geht aber nicht...weil if ($username) sich aufs cgi bezieht und nicht im log danach sucht.
Grüsse vom Alain
Hi,
das geht aber nicht...weil if ($username) sich aufs cgi bezieht und nicht
im log danach sucht.
Kein Wunder, du durchstuchst ja auch gar nichts, lies nochmal das hier genau! http://selfhtml.teamone.de/cgiperl/funktionen/einausgabe.htm#open. Dann weißt du hoffentlich was du falsch gemacht hast, so überprüfst du jedenfalls nur ob die variable username true ist oder nicht. Warum gibst du danach etwas in die Datei aus? Das macht doch keinen Sinn.
verwunderte Grüße Andres Freund
Moin,
Kein Wunder, du durchstuchst ja auch gar nichts, lies nochmal das hier genau! http://selfhtml.teamone.de/cgiperl/funktionen/einausgabe.htm#open. Dann weißt du hoffentlich was du falsch gemacht hast, so überprüfst du jedenfalls nur ob die variable username true ist oder nicht. Warum gibst du danach etwas in die Datei aus? Das macht doch keinen Sinn.
es geht darum zu suchen in der logdatei ob der eintrag soundso bereits voranden ist, wenn ja dann passiert nix wenn nein dann dann schreibe den eintrag in die log datei. Damit will ich verhindern dass sich eine selbst erstellte statistik-logdatei unnötig mit doppelten einträgen füllt, das ist alles. Naja ich werd mich mal mit Deinem link schlauer versuchen.
open(FILE,"$logfile") || die "error $_";
while (<FILE>){
if ($username,$ip_now){ #welchen Vergleichs ^^ operator müsste man hier nehmen?
print "$username,$ip_now Already Exists\n"; close FILE; exit; } } $ips = "$date,$username,$ip_now,$agent,$ref";
&log; &redir;
aber leider gehts nicht wenn ich z.B. mit einer anderen IP aufs skript komm. Ich möchte,wenn sich etwas an der $ip_now,$username ändert,dass die log gedruckt wird Beispiel der ausgabe vom cgi ist unter http://www.legfan.de/member/reftest.cgi zu finden.
Grüsse vom Alain
$logfile ="stat.log";
$date = "$hour:$min:$sec $mday/$month";
$username = $ENV{'REMOTE_USER'} || 'anyuser';
$ip_now = $ENV{'REMOTE_ADDR'};
$agent = $ENV{'HTTP_USER_AGENT'};
$ref = $ENV{'HTTP_REFERER'} || 'none';
$ips = "$username,$ip_now,$date,$agent,$ref";
open(FILE,"<$logfile"); $Zugriffe = 0;
while (<FILE>){ /$username,$ip_now/ ? $Zugriffe = $Zugriffe + 1 : $Zugriffe = $Zugriffe;{ print "Content-type: text/html\n\n"; print "sorry\n"; } }
if ($Zugriffe < 1) { &log; }
close (FILE);
&redir;
sub log {
if (! open(LOG,">>$logfile")) {
print "Content-type: text/html\n\n";
print "Cannot open file\n";
exit; }
{
print LOG "$ips\n"; print LOG "------- \n"; close (LOG); }}
sub redir {
print "Location: $HomeDirURL\n\n"; exit;
wäre froh wenn ein profie dieses sript mal in augenschein nehmen würde und mir die fehler zeigt falls vorhanden :) Grüsse vom Alain
Hi,
sorry dass ich nochmal frage,aber ich kriegs einfach nicht hin nach x-stunden *seufz*.
Also um einfach wie möglich zu fragen:
Wie kann ich in einer logdatei nach einem bestimmten text suchen durch ein cgi?
oder wie heisst die variable dafür eine log.datei öffnen und nach
if(/$etwas/) zu suchen?
Für einen kleinen tip oder link wär ich dankbar. http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htmund http://selfhtml.teamone.de/cgiperl/funktionen/einausgabe.htm#open, da findest du schon einmal viel, falls du mit "einem CGI" ein Perl-Script meinst. Dus musst du die Logsatei nur mittels open() öffnen, und den Inhalt durch einen Regex/mehrere Regexe überprüfen. Wo ist da das Problem?
mfg Andres Freund
Hi,
Tut mir leid, ich habe ausversehen aauf versenden statt auf Vorschau geklickt.
Wie kann ich in einer logdatei nach einem bestimmten text suchen durch ein cgi?
oder wie heisst die variable dafür eine log.datei öffnen und nach
if(/$etwas/) zu suchen?
Für einen kleinen tip oder link wär ich dankbar.
Siehe http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htmund http://selfhtml.teamone.de/cgiperl/funktionen/einausgabe.htm#open, da findest du schon einmal viel, falls du mit "einem CGI" ein Perl-Script meinst. Dus musst du die Logsatei nur mittels open() öffnen, und den Inhalt durch einen Regex/mehrere Regexe überprüfen. Wo ist da das Problem?
mfg Andres Freund