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í
×

    dnes 14:22 | Bezpečnostní upozornění

    David Buchanan na svém blogu rozebírá zranitelnost acropalypse (CVE-2023-21036) telefonů Google Pixel. Z výřezu (crop) snímku obrazovky vytvořeného integrovanou aplikací Markup může být možné částečné obnovení původního snímku obrazovky. Viz tweet Simona Aaronse. Vyzkoušet lze webovou aplikaci acropalypse.app. Opraveno v březnové aktualizaci.

    Ladislav Hagara | Komentářů: 0
    dnes 08:00 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.19.0. Přehled novinek i s náhledy v příspěvku na blogu. Kvůli "převzetí Gitei" společností Gitea Limited byl v prosinci loňského roku představen fork Gitei s názvem Forgejo (Codeberg).

    Ladislav Hagara | Komentářů: 0
    dnes 07:00 | Nová verze

    Byla vydána nová verze 5.11 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Nově je používán zram. Tor Browser byl aktualizován na verzi 12.0.4. Thunderbird na verzi 102.9.0.

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

    Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Lorelai (ProtonDB).

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

    Curl, řádkový nástroj a knihovna pro přenos dat po různých protokolech, slaví 25 let. Vydána byla nová verze 8.0.0. Mimo jiné řeší 6 zranitelností.

    Ladislav Hagara | Komentářů: 1
    včera 10:00 | Komunita

    V sobotu 25. března proběhne Arduino Day 2023. Od 14:00 lze sledovat oficiální stream. Zúčastnit se lze i lokálních akcí. V Česku jsou aktuálně registrovány dvě: v Praze na Matfyzu a v Poličce v městské knihovně.

    Ladislav Hagara | Komentářů: 0
    včera 09:00 | Zajímavý projekt

    Fabrice Bellard, tvůrce FFmpeg nebo QEMU, představil TextSynth Server. Jedná se o webový server nabízející REST API k velkým AI jazykovým modelům. CPU verze je k dispozici zdarma jako binárka pod licencí MIT. GPU verze je komerční. Vyzkoušet lze na stránkách TextSynth.

    Ladislav Hagara | Komentářů: 2
    včera 08:00 | Komunita

    Na konferenci LibrePlanet 2023 byly vyhlášeny ceny Free Software Foundation. Oceněni byli Eli Zaretskii za dlouhodobé příspěvky (správce Emacsu), Tad „SkewedZeppelin“ za nové příspěvky (správce DivestOS, distribuce Androidu) a projekt GNU Jami za společenský přínos.

    Fluttershy, yay! | Komentářů: 0
    včera 07:00 | Nová verze

    Projekt Libreboot (Wikipedie) vydal novou verzi 20230319 svého svobodného firmwaru nahrazujícího proprietární BIOSy. Přibyla například podpora Lenovo ThinkPadů W530 a T530. Libreboot je distribucí Corebootu bez proprietárních blobů.

    Ladislav Hagara | Komentářů: 0
    19.3. 17:55 | Komunita

    Na YouTube jsou k dispozici videozáznamy z 20. konference SCALE (Southern California Linux Expo). Závěrečnou přednášku měl dnes již osmdesátiletý Ken Thompson. Na otázku, jaký operační systém používá, odpověděl: "Většinu svého života jsem používal Apple, protože jsem se do této společnosti tak trochu narodil. Poslední dobou, myslím posledních pět let, jsem ale kvůli Applu více a více depresivní. To, co dělá s něčím, co by vám mělo umožnit

    … více »
    Ladislav Hagara | Komentářů: 3
    Používáte WSL (Windows Subsystem for Linux)?
     (74%)
     (12%)
     (4%)
     (10%)
    Celkem 273 hlasů
     Komentářů: 1, poslední 6.3. 07:51
    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: 516×
    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áknoNahoru

    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.