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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

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

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 3
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 799 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

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: 493×
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: 44 | 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: 44 | 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: 66
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: 44 | 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: 44 | 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.