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 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
dnes 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
včera 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
včera 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
včera 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
včera 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ářů: 1
8.12. 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
8.12. 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ářů: 5
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
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%)
 (7%)
 (5%)
 (3%)
Celkem 808 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: mysqldump | iconv > vysledok.txt (pamäť)

20.1.2006 09:08 Stanislav Motyčka | skóre: 9 | Revúca
mysqldump | iconv > vysledok.txt (pamäť)
Přečteno: 407×
Zdravim Vas

Vcera som nechal urobit nasl. prikaz:
nohup mysqldump --user='user' --password='password' --databases DB1 | iconv -c -f"CP852" -t"ISO-8859-2" > /opt2/DB1.txt &
Nakolko sa jednalo o 1,3 GB databazu, zrejme to system nestravil, proces zabil a dnes som si nasiel od neho pozdrav:
Jan 19 15:48:08 LINUX-server kernel: oom-killer: gfp_mask=0x601d2, order=0
Jan 19 15:48:09 LINUX-server kernel: Mem-info:
Jan 19 15:48:09 LINUX-server kernel: DMA per-cpu:
Jan 19 15:48:09 LINUX-server kernel: cpu 0 hot: low 2, high 6, batch 1 used:5
Jan 19 15:48:09 LINUX-server kernel: cpu 0 cold: low 0, high 2, batch 1 used:1
Jan 19 15:48:09 LINUX-server kernel: Normal per-cpu:
Jan 19 15:48:09 LINUX-server kernel: cpu 0 hot: low 62, high 186, batch 31 used:80
Jan 19 15:48:09 LINUX-server kernel: cpu 0 cold: low 0, high 62, batch 31 used:48
Jan 19 15:48:09 LINUX-server kernel: HighMem per-cpu: empty
Jan 19 15:48:09 LINUX-server kernel: Free pages:        5264kB (0kB HighMem)
Jan 19 15:48:09 LINUX-server kernel: Active:60900 inactive:60734 dirty:0 writeback:0 unstable:0 free:1316 slab:2998 mapped:120948 pagetables:841
Jan 19 15:48:09 LINUX-server kernel: DMA free:2072kB min:88kB low:108kB high:132kB active:5500kB inactive:4992kB present:16384kB pages_scanned:11437 all_unreclaimable? yes
Jan 19 15:48:09 LINUX-server kernel: lowmem_reserve[]: 0 496 496
Jan 19 15:48:11 LINUX-server kernel: Normal free:3192kB min:2804kB low:3504kB high:4204kB active:238100kB inactive:237944kB present:507904kB pages_scanned:608421 all_unreclaimable? no
Jan 19 15:48:11 LINUX-server kernel: lowmem_reserve[]: 0 0 0
Jan 19 15:48:12 LINUX-server kernel: HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
Jan 19 15:48:12 LINUX-server kernel: lowmem_reserve[]: 0 0 0
Jan 19 15:48:12 LINUX-server kernel: DMA: 0*4kB 1*8kB 1*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 2072kB
Jan 19 15:48:12 LINUX-server kernel: Normal: 116*4kB 5*8kB 0*16kB 0*32kB 12*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 3192kB
Jan 19 15:48:12 LINUX-server kernel: HighMem: empty
Jan 19 15:48:12 LINUX-server kernel: Swap cache: add 1188494, delete 1185783, find 604335/681068, race 0+0
Jan 19 15:48:12 LINUX-server kernel: Free swap  = 0kB
Jan 19 15:48:12 LINUX-server kernel: Total swap = 1060280kB
Jan 19 15:48:12 LINUX-server kernel: Free swap:            0kB
Jan 19 15:48:12 LINUX-server kernel: 131072 pages of RAM
Jan 19 15:48:12 LINUX-server kernel: 0 pages of HIGHMEM
Jan 19 15:48:12 LINUX-server kernel: 2260 reserved pages
Jan 19 15:48:13 LINUX-server kernel: 6322 pages shared
Jan 19 15:48:13 LINUX-server kernel: 2711 pages swap cached
Jan 19 15:48:13 LINUX-server kernel: 0 pages dirty
Jan 19 15:48:13 LINUX-server kernel: 0 pages writeback
Jan 19 15:48:13 LINUX-server kernel: 120948 pages mapped
Jan 19 15:48:13 LINUX-server kernel: 2998 pages slab
Jan 19 15:48:13 LINUX-server kernel: 841 pages pagetables
Jan 19 15:48:14 LINUX-server kernel: Out of Memory: Killed process 6623 (iconv).
Ako teda urobit dump (objemnej) celej databazy do 1 suboru avsak uz v inej znakovej sade. Do 1 preto, aby som zbytocne nezaprataval miesto 2 velkymi subormi.

Odpovědi

20.1.2006 10:19 cronin | skóre: 48
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Njn, docasne subory sa pouzivaju, ked objem dat nezvlada pamat. Je ale diskutabilne, co tu zralo pamat, a ci to nebude rovnako zrat pamat aj v pripade, ked sa budu spracovavat udaje pomocou docasnych suborov, nie cez ruru.
20.1.2006 10:41 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Velmi divne, ze iconv pri prudovom spracovani zozral vela pamate. Nemohlo to byt, ze pamat zozralo mysql, ale system zabil hlavny proces skupiny, co je pri kolone posledny prikaz? (toto je skor otazka na niekoho dobre znaleho systemu, nez na Vas).

Ako pokus, ci sa iconv nechova divne mozete skusit ten text na konvertovanie z niecoho iba generovat. Napr cyklom vypisovat par kilovy textovy subor a posielat to do iconvu, ci bude rast jeho spotreba pamate. Ak hej, tak je potom podla mna iconv vadny.
If you hold a Unix shell up to your ear, you can you hear the C.
20.1.2006 11:26 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
No, spravil som si vlastny pokus, pockal 4 minuty, nez OOMK zauradoval a tvrdim, ze iconv je BLBY!

Mam 512MB pamate a podarilo sa mi do iconvu natlacit cca 450MB textu a potom zacal system swapovat. Mam skoro taky isty velky swap (nieco na nom uz bolo, ale nie vela). Celkovo sa mi podarilo do iconvu natlacit cca 800MB textu. Potom sa nic nedialo, potom OOMK zabil iconv. File, do ktoreho bol vystup presmerovany bol prazdny. Takze iconv si cely text natiahne do pamate a zacne tam robit konverziu. K tej sa nedostal, pretoze bol zostreleny.

Po tomto si o iconve myslim, ze je dobry tak akurat na prekodovanie titulkov k filmu, ale inac je na prd.

Pouzite ine konvertovatko (napr. cstocs), alebo tych par znakov v com sa to lisi si najdite a napiste ich ako pravidla pre sed.
If you hold a Unix shell up to your ear, you can you hear the C.
20.1.2006 12:05 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Ono to kvůli multi byte kódováním jinak nejde. Pokud vstup bude soubor, tak se mmapne a neměl by s pamětí být problém.
we have a problem with reading from a desriptor since we must not provide the iconv() function an incomplete character or shift sequence at the end of the buffer. Since we have to deal with arbitrary encodings we must read the whole text in a buffer and process it in one step.
Jinak pro tento případ je nejrozumnější nastavit kódování přímo mysqldumpu...
20.1.2006 12:13 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Ak to chapem spravne, tak ide o to, ze ak nacitaju do buffera 1000 znakov, tak pocet vystupnych znakov moze byt mensi alebo rovny alebo vacsi ako 1000 a v 1. pripade by vystupny buffer obsahoval menej platnych znakov ako vstupny a v 3. pripade by im ostavali nejake zvysky bufferu neprekodovane, ktore by museli konvertovat v dalsom cykle.

Chapem, ze sa to nepogramuje nejak prijemne, ale da sa. A trebars za cenu isteho zpomalenia by vedel konvertovat aj z deskriptoru lubovolne vleky file. Mal by tam na taketo spravanie prinajmensom option.
If you hold a Unix shell up to your ear, you can you hear the C.
20.1.2006 12:19 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Nejde o počet ale o to, že je potřeba zajistit aby v bufferu nebyla jenom část multi byte znaku. Taky by se to dalo napsat, ale znamenalo by to v podstatě duplikovat dekódování multi byte znaků při plnění bufferu.
20.1.2006 12:29 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Neřekl bych. Prostě si načtu (např. 64 KB) buffer, zkonvertuji z něj, co se dá, zbytek přesunu na začátek, načtu zbytek bufferu atd. Nebo to napíšu v C++ a budu číst z std::wifstream rovnou wchar_t.
20.1.2006 12:37 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Nemůžu číst wchar_t, protože nevím jak to kódování vypadá.

Postupná konverze by fungovala, akorát se to s iconvem hůř implementuje.
20.1.2006 13:39 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)

To samozřejmě musíte vědět (nebo aspoň předpokládat), jinak jste namydlený i s klasickým postupem. Když půjdu do extrému, jednoduchý filtr by mohl vypadat asi takto (pro jednoduchost a přehlednost jsem vynechal zpracování chyb):

#include <iostream>
#include <locale>

int main(int argc, char* argv[])
{
  if (argc < 3) return 1;
  std::ios_base::sync_with_stdio(false);
  std::wcin.imbue(std::locale(argv[1]));
  std::wcout.imbue(std::locale(argv[2]));
  std::wcout << std::wcin.rdbuf();
  return 0;
}
(jako argument se tomu musí dát celé jméno locale, ne jen kódování).
20.1.2006 14:20 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Protože to chce locale, tak to nejspíš nebude fungovat pro všechna kódování (a vůbec nevím jestli existuje rozumný způsob jak převést kódování na nějaké locale).

Taky to bude určitě pomalejší, protože se dvakrát dekódují multibyte znaky.

Stejně je lepší použít recode, které to umí rovnou a nepoužívat iconv.
20.1.2006 14:52 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Taky to bude určitě pomalejší, protože se dvakrát dekódují multibyte znaky. … Stejně je lepší použít recode, které to umí rovnou a nepoužívat iconv.

Tak jsem to zkusil a výsledky vás asi nemile překvapí:

  • iconv: user 5.24 s, system 0.56 s
  • cvt: user 6.60 s, system 0.29 s
  • recode: user 59.4 s, system 1.34 s
(cvt je ten instantní prográmek z minulého příspěvku). Šlo o konverzi klasické věty "Příliš žluťoučký kůň úpěl ďábelské ódy.\n" (v počtu 10 milionů exemplářů) z UTF-8 do ISO-8859-2. Těch 20 procent ve prospěch iconv sice může někdy hrát roli, ale rozhodně se nedá říci, že řešení standardními prostředky libstdc++ je nějak výrazně pomalejší. Navíc pokud iconv opravdu nejdřív nabufferuje celý vstup, tak pro velké množství dat těch 20 procent rád obětuji a pro malé je to stejně jedno. No a recode, který jste propagoval, je úplně někde jinde…
20.1.2006 12:29 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Jinými slovy: API iconvu na toto není navržené. Recode je na tom lépe a IMHO by nemělo načítat celý soubor.
20.1.2006 13:06 razor | skóre: 32
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Co takhle parametr mysqldumpu --default-character-set=... ?
20.1.2006 14:10 Stanislav Motyčka | skóre: 9 | Revúca
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
dobry nápad, táto možnosť ma nenapadla hm ... ALE !!! nie som až taký znalec znakových sád, ale -> http://www.abclinuxu.cz/forum/show/117672
Pomocou PHP-skriptu som presypal data z 6000 DBF-súborov do MySQL (kde sa podla štruktúry (je tam 9 rôznych typov dbf-súborov, čo sa týka štruktúry) nahádzali do 9 tabuliek).
Vsadil som na možnosť, že urobim najprv konverziu dbf-súborov, ktoré boli v znakovej sade CP-852 (Vych.Europa) do ISO-8859-2, avšak konverzia 'iconv'-ertom nedopadla dobre, ako by preštruktúrovalo (Zbadal som to pri prehadzovani dat do MySQL).
Tak som teda presyp stopol databázu vyprázdnil, a nasáčkoval som ich do DB v ich pôvodnej znakovej sade (CP-852).
No a teraz nadviažem na začiatok (prečo rovno nedumpovať do chcenej znakovej sady (ISO-8859-2)?). Pretože v DB sú dáta (pre MySQL asi neznámej) znakovej sade CP-852.
Možno sa mýlim. ???
20.1.2006 14:40 razor | skóre: 32
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
No moje instalce mysql cp852 má. Dostupné sady zjistíš: show character set;.
20.1.2006 14:54 razor | skóre: 32
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
Protože si asi při insertování dat nestanovoval v jakém jsou kódování, tak mysql si myslí (defaultně), že ty data jsou v latin1. Čili možná by se hodilo, ty data do mysql znova narvat, a řict mysql, že jsou v cp852. No a pak kdyby si chtěl dump v latin2, tak by měl fungovat ten parametr --default-character-set= bez problémů. Možná akorát budeš muset ještě použít parametr mysqldumpu --character-sets-dir=.... U mě ty sady jsou v /usr/share/mysql/charsets
20.1.2006 15:01 hele
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
nevim presne zda to treba neni problem v tom mysqldump/mysqld. ja obvykle na rapidne velke databaze uzivam mysqldump --quick ..............

ale mozna v novych verzi mysqld uz je quick detailne a necacheuje se vysledek.
20.1.2006 15:12 Stanislav Motyčka | skóre: 9 | Revúca
Rozbalit Rozbalit vše Re: mysqldump | iconv > vysledok.txt (pamäť)
myslím, že nie, pretože ak cez rúru prevádzam dump všetkých databáz '--all-databases' do 'gzip'-u, tak je to v poriadku.
No a tu zlyhal za rúrou 'iconv'.

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.