14Aug

Lihtsalt sõeluda / otsida veebilehe hakulauseketta stringid Apache palke kasutades php awk ja sed Linux käsurea utiliidid

click fraud protection
6 Parts: kasutamine awk ja sed sõeluda Apache logifailide kasutaja sisestatud päringute teadaolevad Version 2: Vähem käsurea eeltöötlus ja php töötlemise ToDo Tips Tricks & amp;Hoiatused Kommentaarid

See HowTo näitab teile, kuidas lihtsalt on Linux käsurea sõeluda oma Apache logifailide saada otsisõna päringu andmed, et kasutajad tüüpi leida oma veebilehel otsingumootori.Olen lisanud php otsing GUI samuti lihtne kasutamine.

Oli see kasulik?Jah |ei |Vajan abi
Sisu
  • 1 kasutamine awk ja sed sõeluda Apache logifailide kasutaja sisestatud päringute
  • 2 teadaolevad
  • 3 Version 2: Vähem käsurea eeltöötlus ja php töötlemise
  • 4 ToDo
  • 5 Tips Tricks & amp;Hoiatused
  • 6 Kommentaarid
Ad

kasutamine awk ja sed sõeluda Apache logifailide kasutaja sisestatud päringute

Siin on toores koodi, et saada töö tehtud.Pange tähele, et $ title2 tuleks asendada, mida otsite, kuid ruumid on asendatud "\ +".

Näiteks: "Kuidas leida suur Lollypop" oleks "Kuidas \ + to \ + leida \ + a \ + suur \ + Lollypop"

instagram viewer

Seda seetõttu, et ma plaanin helistada php funktsioon, kus maasustada $ title2 nagu näete hiljem.Ma oleks võinud panna egrep

hiljem, kuid siis ei ole võimalust otsida nii lehe pealkirja ja küsimusi.Minu esialgne versioon lihtsalt otsida päringuid, kuid ma tahtsin funktsioon ma võiks lihtsalt helistada antud lehele ja vaata kõiki päringuid, et kasutajatel oleks kirjutatud viimase paari nädala jooksul.

kass /var/log/virtualmin/VisiHow.com_access_log |#Get Andmeid juurdepääsu samamoodi egrep "(q | p) =" |#Use Ainult kirjed, mis tõenäoliselt on päringute sed 's /% 22 / "/ g; s /% 20 / + / g; s / _ / + / g;" | #Do osa vormingust muutusi ja mis kõige tähtsam muuta kõik ruumidvõi rõhutab, et + egrep -Ma "$ title2" | #otsing eest $ title2 awk '{print $ 11} "| #extract ainult otsingu andmed sed' s / p = / q = / ig" | #handle Yahoo p = awk -F q = ''{ print $ 2} "| #grab kõik andmed alates q = sed 's / q = // g; s / + / / g; s /% 22 /" / g; s /% 20/ / g; "|#reformat inimeste loetavas vormingus cut -d "& amp;"-f 1 |#strip välja muid parameetreid Awk '{print $ 0 "
"} "#Lisa
link pause, sest meil on plaanis väljund veebilehe

Oli see kasulik?Jah |ei |Vajan abi

== Olgem luua PHP

HTML GUI ümbris seda nüüd ==

Et see lihtne kasutamine tahame pääseda kasutaja päringu andmeid veebilehe otsingumootorit.

queries.php

& lt; title & gt; Kasutaja päringud & lt; / title & gt;& Lt; meta name = "robots" content = "noindex" & gt;

& lt; kujul name = "sform" method = "get" & gt;Otsi pealkiri: & lt; input size = "80" value = "& lt;? Php echo $ _GET [ 'title'];? & Gt;"name = "title" type = "text" & gt;& Lt; input value = "Otsi" type = "submit" & gt;VIHJE: Te võite kasutada osalise pealkirja või isegi Regex nagu "Samsung. * Kahju" & lt; / form & gt;

Oli see kasulik?Jah |ei |Vajan abi

$ title = $ _GET [ 'title'];$ Title = preg_replace( "/ kuidas / i", "", $ pealkiri);$ Title2 = str_replace( "", "\ +", $ pealkiri);$ Title2 = str_replace( "_", "\ +", $ title2);

$ bigcmd = & lt; & lt; & lt; eof

egrep -i "(q | p) =" |#Use Ainult kirjed, mis tõenäoliselt on päringute sed 's /% 22 / "/ g; s /% 20 / + / g; s / _ / + / g;" | #Do osa vormingust muutusi ja mis kõige tähtsam muuta kõik ruumidvõi rõhutab, et + egrep -i "$ title2" | #otsing eest title2 awk '{print $ 11} "| #extract ainult otsingu andmed sed' s / p = / q = / ig" | #handle yahoo p = awk -F"q = ''{ print $ 2}" | #grab kõik andmed alates q = sed 's / q = // g; s / + / / g; s /% 22 / "/ g; s /% 20 // g; "|#reformat inimeste loetavas vormingus cut -d "& amp;"-f 1 |#strip välja muid parameetreid Awk '{print $ 0 "
"} "#Lisa
link pause, sest meil on plaanis väljund veebilehe

EOF;

Oli see kasulik?Jah |ei |Vajan abi

if( $ pealkiri! = ""){

print "Otsin" $ pealkiri "...";print "jooksva nädala. ..
";print `cat /var/log/virtualmin/visihow.com_access_log |#Get Andmeid juurdepääsu samamoodi $ bigcmd `;// Me toetame p = liiga, sest Yahoo kasutab seda. .. kummaline duck lol eest( $ i = 1; $ i & lt; 6; $ i ++){ print "
$ i nädalas( S) AGO
";prindi `zcat /var/log/virtualmin/visihow.com_access_log.$i.gz |#Get Andmeid juurdepääsu samamoodi $ bigcmd `;}

}? & Gt;

Oli see kasulik?Jah |ei |Vajan abi

& lt; / eof

teadaolevad

Grep on hoogustumas kirjed viitajaandmed nii et see on tagasi soovimatu arvestust.Näiteks, kui keegi otsib "iPhone" ja kasutaja oli iPhone lehele siis klõpsatud minna Samsung lehel see kood kirkad iPhone viitaja ja seega ka, et andmeid, mida ta ei peaks.Olen töötanud versioon 2, mis teeb palju rohkem ja määrata see viga, liikudes palju käsurea eeltöötlus php.Kood olla nüri, kuid annab palju kasulikku ja täpseid andmeid.

Oli see kasulik?Jah |ei |Vajan abi

Version 2: Vähem käsurea eeltöötlus ja php töötlemise

See versioon on järgmised eelised / puudused:

  • Vähem käsurea eeltöötlus tähendab enam-kood
  • rohkem php tähendab rohkem kontrolli ja funktsioonid
  • ignoreeritakse mitu mitu taotlust või samalt IP
  • loeb mitu otsingud asemel loetletakse neid mitu korda
  • Näita trendid, kuvades iganädalane kokku
  • Toodangaastal keritav divs jaoks lihtne vaadata populaarsemad leheküljed
  • Otsing päringu pikkused kokku, millest ligikaudu tähendab rohkem populaarsemad leheküljed näitavad esimese
  • natuke kiire ja määrdunud javascript & amp;CSS teha divs auto laiendada detailse vaatamise

& lt; title & gt; Kasutaja päringud & lt; / title & gt;& Lt; meta name = "robots" content = "noindex" & gt;

& lt; kujul name = "sform" method = "get" & gt;Otsi pealkiri: & lt; input size = "80" value = "& lt;? Php
if( strlen( $ _ GET [ 'title']) & gt; 0){
kaja $ _GET [ 'title'];
} else{
kaja "*"; & lt; br = "" type = "text" & gt;}? & gt; "name = "title" / & gt;& Lt; input value = "Otsi" type = "submit" & gt;
vihje: Sisesta * näha kõike.Te võite kasutada osalise pealkirja või isegi Regex nagu "Samsung. * Kahju" & lt; / form & gt;

Oli see kasulik?Jah |ei |Vajan abi

funktsiooni sortbylen( $ a, $ b){

tagastamise strlen( $ b) -strlen( $ a);

}

$ title = $ _GET [ 'title'];$ Title = preg_replace( "/ kuidas / i", "", $ pealkiri);$ Title2 = str_replace( "", "\ +", $ pealkiri);$ Title2 = str_replace( "_", "\ +", $ title2);

$ bigcmd = & lt; & lt; & lt; eof

egrep -i "(q | p) =" |#Use Ainult kirjed, mis tõenäoliselt on päringute sed 's /% 22 / "/ g; s /% 20 / + / g; s / _ / + / g;" | #Do osa vormingust muutusi ja mis kõige tähtsam muuta kõik ruumidvõi rõhutab, et + awk '{print $ 1 "" $ 7 "" $ 11} "| egrep -i" $ title2 "#otsing eest title2

EOF;

oli see kasulik? Jah | ei | Vajan abi

if( $ pealkiri! = ""){

print "Otsin" $ pealkiri "...", sest( $ i = 0; $ i & lt; 6; $ i ++){ if( $ i == 0){ $ searchlogdata = `cat /var/log/virtualmin/visihow.com_access_log | $ bigcmd`;} else{ $ searchlogdata =` zcat /var/log/virtualmin/visihow.com_access_log.$i.gz | $ bigcmd`;} $ searchlogarray = plahvatada( "\ n", $ searchlogdata); foreach( $ searchlogarray kui $ sdata){ $ logparts = plahvatada( "", $ sdata); $ ip = $ logparts [0]; $ url = $ logparts[1]; preg_match( "/( q | p) =( . *?)"?( \ & amp; | $) / ", $ logparts [2], $ tikud);$ Ss = urldecode( $ vasteid [2]);$ Ss = str_replace( "+", "", $ ss);if( (strlen( trimmi( $ ss)) & gt; 3) ja amp; & amp;( ! preg_match( "# http \: \ / \ / # i", $ ss))){ // hoida läbi url saidilt otsingudif( ($ ip! = $ huule) ||( $ ss! = $ LSS)){ $ huule = $ ip;$ LSS = $ ss;$ Ssdata [ "$ url"]. = "$ Ss |";}}} Uasort( $ massiiv, "sortbylen");foreach( $ ssdata kui $ key = & gt; $ väärtus){ $ Sarr = plahvatada( "|", $ väärtus);foreach( $ Sarr kui $ s){ if( strlen( $ s) & gt; 0) $ s2 [$ s] ++;} Arsort( $ s2);foreach( $ s2 kui $ key2 = & gt; $ VAL2){ $ urldata [$ võti] [$ i]. = "$ VAL2: $ key2
";$ STOT [$ võti] [$ i] + = $ VAL2;} Väljalülitatud( $ s2);} Väljalülitatud( $ ssdata);} Foreach( $ urldata kui $ url = & gt; $ weekdata){ print " & lt; a target =" _ blank "href =" $ url "& gt; $ url & lt; / a & gt;
";$ Wk = 0;foreach( $ weekdata kui $ nädalas){ print "
". $ nädalas ++. "Week( S) AGO: Kokku otsingud =". $ STOT [$ url] [$ wk-1]. "
";print "& lt; div onmouseover =" this.style.height = 500 "onMouseOut =" this.style.height = 100 "& lt; br =" "& gt; & lt; / p & gt; style =" width: 800px; kõrgus: 100px; piiri: 1px tahke hall; ülevoolu: kerida "& gt; $ nädalas";}}

}? & Gt;

Oli see kasulik?Jah |ei |Vajan abi

& lt; / eof

ToDo

Sorteeri päringu pikkus on sekundaarne omamoodi, pikema päringuid esimene

Ongi.Oleks tore kuulda teie kogemusi selle koodi või parandusettepanekuid.

Tips Tricks & amp;Hoiatused

  • Märkus: toetan p = nii hästi ja standard q = sest Yahoo on kummaline duck on kasutab p =
  • Version 2 php on keerulisem ja ma kodeerimine kiire, et mõned muutujadnimed valiti halvasti.palun ei saa kurta selle tasuta koodi.Aga kui sa tahad selle korda ja seda dokumenteerida ja salvestada selle wiki versioon 3, mis oleks fantastiline:) Maksan EDASI!
  • Kui sul on probleeme mõne nimetatud sammud, küsida rohkem aidata või postitada kommentaarid lõik allpool.

Kommentaarid

VisiHow tervitab kõiki kommentaare .Kui sa ei taha olla anonüümne, registreeru või logi. See on tasuta.




Daniel
Soovitatavad Autor
69 artiklid Alusta
2601 artikli töötlused
24290 Punkte
Daniel on Objekte autori VisiHow.Daniel on saavutanud taseme "leitnant" koos 24290 punkti.Daniel on alanud 69 artikleid ja tehtud 2601 artikli muudatused.17578 inimest on lugenud Daniel artikkel panuse.
Küsi Daniel
Daniel : Tere, minu nimi on Daniel.
Daniel : Ma saan teid aidata oma probleemi kohta "Lihtsalt sõeluda / otsida veebilehe päringuga stringid Apache palke kasutades php awk ja sed Linux käsurea utiliidid"?
Saa