abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | Komunita

    openSUSE Leap 16.1 vstoupil do RC fáze. Nově lze instalovat jako standardní systém (Standard) nebo jako neměnný systém s atomickými aktualizacemi (Immutable). Samostatná neměnná distribuce openSUSE Leap Micro končí.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Nová verze

    Byl vydán Mozilla Firefox 157.0. S nejvýraznější vizuální proměnou za poslední roky. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 157 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 10:33 | IT novinky

    Rodina produktů Raspberry Pi se rozšířila o Raspberry Pi Smart Display Module. Deska pro Raspberry Pi Compute Module 5 se zasouvá přímo do displejů dle specifikace Intel SDM. Cena desky je 30 dolarů.

    Ladislav Hagara | Komentářů: 0
    28.9. 23:44 | Nová verze

    Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.9. 21:22 | Bezpečnostní upozornění

    Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla

    … více »
    AfD 💙 | Komentářů: 1
    28.9. 21:11 | Zajímavý článek

    Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a

    … více »
    AfD 💙 | Komentářů: 13
    28.9. 01:33 | Komunita

    Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.

    Ladislav Hagara | Komentářů: 8
    27.9. 13:44 | Zajímavý projekt

    Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.

    Ladislav Hagara | Komentářů: 13
    26.9. 19:22 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    25.9. 23:33 | Humor

    Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického

    … více »
    AfD 💙 | Komentářů: 27
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2752 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Skript na dekódování squid access.log datumu

    5.2.2007 17:02 ac
    Skript na dekódování squid access.log datumu
    Přečteno: 763×
    Udělal jsem si skript v php na dekodovani data a času s access.log logu squidu v php. Jak to napsat v bashi? |V php to při větším logu přestává fungovat, alokuje to hrozně moc paměti.
    $fp = FOpen ($filename, "rb");
    $text = FRead ($fp, FileSize ($filename));
    FClose ($fp);
    
           $patterns = array(
               "/^(.*)\.(.*) /smUe"
           );
           $replacements = array(
               "StrFTime('%d/%m/%Y %H:%M:%S', '\\1')"
           );
           $text = preg_replace($patterns,$replacements, $text);
    
    

    Odpovědi

    5.2.2007 17:30 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    cat access.log |
    cut -d. -f1 |
    while read sec; do
        date -d "19700101 00:00:00 $sec sec" "+%d/%m/%Y %H:%M:%S"
    done
    If you hold a Unix shell up to your ear, you can you hear the C.
    5.2.2007 22:49 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    No dobre no, ten cat som mohol usetrit a dat subor ako parameter cutu. Ja som to testoval na zgzipenom logu a pouzival som zcat (a nakoniec som to upravil pre publikovanie). zcut totiz neexistuje.
    If you hold a Unix shell up to your ear, you can you hear the C.
    Josef Kufner avatar 5.2.2007 17:31 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Tak ten log zpracovávej po řádcích a ne celý najednou.
    Hello world ! Segmentation fault (core dumped)
    5.2.2007 17:31 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Alebo ten skript nespravis tak hlupo, ze si ho najprv cely nacitavas do pamate, ale budes ho citat po riadkoch a rovno spracovavat.
    If you hold a Unix shell up to your ear, you can you hear the C.
    5.2.2007 21:45 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Třeba takhle:
    #!/usr/bin/python
    import time
    for line in file('access.log'):
        splitted = line.split()
        firsttwo = ' '.join(splitted[:2])
        text = ' '.join(splitted[2:])
        time_tuple = time.strptime(firsttwo, '%d/%m/%Y %H:%M:%S')
        print time.mktime(time_tuple), text
    
    Zpracovává to asi 10000 řádků za sekundu a paměť by to taky nějak zvlášť žrát nemělo.
    6.2.2007 10:00 ac
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    10000 řádků za sekundu je málo. Ten php skript zpracuje 50 MB soubor logu za 3 sekunkdy.
    6.2.2007 10:41 iSteve | skóre: 15 | blog: isteve
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    To je sice pekne, ale presto nepouzitelne:) Jestli chces rychlost, napis to v Ccku, pripadne Perlu atd. Jestli chces opravdu velkou rychlost, mej logy v tmpfs. Jestli chces web srajdu, napis to v PHP, ale poradne:) (Krom toho jsem si dost jistej, ze 10k radku/s byl guesstimate a ne mereni)

    Mimochodem, generovani stats pro zatizenejsi weby obvykle trva dlouho, neni uplne rozumny to mit v PHP ve chvili, kdy tam mas milion omezeni stran pameti a doby behu skriptu. Neni rozumny tyto omezeni rusit.

    Vedet jak parsovat log je dobrej zacatek, ale zkus to jeste trochu vic domyslet v sirsich souvislostech, jestli to je opravdu presne to co chces.
    6.2.2007 11:06 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    10000 řádků za sekundu je málo. Ten php skript zpracuje 50 MB soubor logu za 3 sekunkdy.
    Tak o takové rychlosti si mohu nechat jen zdát. Odhaduji, že ten tvůj padesátimegový log obsahuje půl miliónu řádků. Už pouhé volání funkce strptime() z pythonu si u mě vezme 70 mikrosekund, což samo o sobě by se natáhlo na více než půl minuty.

    Rád bych pohlédl kruté pravdě do očí - máme tak strašně odlišné počítače nebo lžou všichni, co údajně svůj web urychlili přepsáním z php do pythonu?
    6.2.2007 12:16 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Ten moj bashovy skript parsuje 740r/s. Na Athlon 3200+. Vstup je generovany a vystup ide do /dev/null, takze to ani nie je brzdene diskom.
    If you hold a Unix shell up to your ear, you can you hear the C.
    6.2.2007 14:26 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Ach ták! Taky jste mi mohl někdo říct, jak vlastně vypadá formát toho logu a že to mám vlastně úplně blbě a tudíž mi to nemůže fungovat ;-) Tak tady je nová verze
    #!/usr/bin/env python
    import time
    for line in file('access.log'):
        sec, text = line.split(' ', 1)
        ttuple = time.localtime(float(sec))
        print time.strftime('%d/%m/%Y %H:%M:%S', ttuple), text,
    
    která zpracovává 40000 řádků za sekundu (změřeno), vypisuje vždy celý řádek logu, jen čas a datum má polidštěný formát. Padesátimegový log se zpracovává 10 sekund a líp to nedokážu.
    6.2.2007 15:25 .
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    # time perl -p -e 's/^\d+\.\d+/localtime $&/e;'< access.log > access-lidsky.log
    
    real    0m39.863s
    user    0m30.460s
    sys     0m3.120s
    
    # cat /var/log/dmesg|grep MIPS
    Calibrating delay loop... 799.53 BogoMIPS
    
    # ls -l access.log
    -rw-r-----    1 proxy    proxy    49436371 Feb  6 15:23 access.log
    
    6.2.2007 15:57 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Skript na dekódování squid access.log datumu
    Tak přece se našlo místo k optimalizaci ;-) Zkusím tedy napodobit ten perlovský kód a předpokládat, že formát data a času vyhovuje tak, jak ho vrací funkce ctime().
    #!/usr/bin/env python
    import time
    for line in file('access.log'):
        sec, text = line.split(' ', 1)
        print time.ctime(float(sec)), text,
    
    A opravdu se to tím zrychlilo:
    $ time ./readfile.py > access-lidsky.log
    
    real    0m6.020s
    user    0m5.415s
    sys     0m0.527s
    $ time perl -p -e 's/^\d+\.\d+/localtime $&/e;'< access.log > access-lidsky.log
    
    real    0m9.052s
    user    0m7.245s
    sys     0m1.725s
    
    Takže padesátimegový log se pythonem zpracuje za 6 sekund, v těsném závěsu je perl s devíti sekundami. Ale nad rychlostí toho PHP mi zůstává rozum stát.

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.