14Aug
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.
- 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
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"
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
== 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;
$ 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;
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;
& 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.
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;
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 title2EOF;
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;
& 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
| 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. |
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"? |