Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: timmynovak 04 Května 2011, 21:33:09

Název: Jak poznat změnu souboru
Přispěvatel: timmynovak 04 Května 2011, 21:33:09
Ahoj, řeším následující problém - potřeboval bych obsah textového souboru opakovaně uploadovat do MySQL, ale jen novinky. To umím vyřešit, jenže - potřebuji, aby se to do MySQL dostalo co nejrychleji. A tady je kámen úrazu - mohu samozřejmě neustále točit LOAD FROM FILE a ignorovat existující záznamy, ale to není ideální. Zbytečně to zatíží kde co všechno. Nešlo by to lépe? Tj. ve smyčce si jen kontrolovat, zda se soubor nezměnil a pokud ano, tak teprve provést načtení do MySQL. Jenže netuším, jak na to. Díky.
Název: Re: Jak poznat změnu souboru
Přispěvatel: Šuohob 04 Května 2011, 21:39:56
Tak napriklad si v databazi udelat dalsi sloupec pro datum posledni zmeny (mtime).
pokud lokalne ulozeny soubor bude mit vetsi mtime, nez mas v databazi, tak soubor v databazi updatni
Název: Re: Jak poznat změnu souboru
Přispěvatel: timmynovak 04 Května 2011, 22:29:59
to je moc databázové - pořád to bude žrát spojení. potřeboval bych to na úrovni os...
Název: Re: Jak poznat změnu souboru
Přispěvatel: Martin Kiklhorn 04 Května 2011, 23:29:56
co si jenom porovnávat výstup treba z md5sum
Název: Re: Jak poznat změnu souboru
Přispěvatel: timmynovak 05 Května 2011, 10:33:20
to je dobrý nápad, jenže zase si to musím někam uložit:) bohužel nemám jak ovlivnit tvorbu toho souboru - napadá mne brutální řešení - soubor si zkopírovat do pracovního adresáře, pokud se bude originál lišit, tak udělat zase kopii do pracovního adresáře, tu načíst do db a pak pořád dokola... to by mohlo jít.
Název: Re: Jak poznat změnu souboru
Přispěvatel: Martin - ViPEr*CZ* 05 Května 2011, 10:37:21
A proč si dělat celou kopii souboru, když stačí uložit jen ten výstup md5sum?
Navíc rozdíl zjistíš vždy nějakým porovnáním. A to něco s čím se bude porovnávat musíš mít někde uloženo nebo k dispozici.

to je dobrý nápad, jenže zase si to musím někam uložit:) bohužel nemám jak ovlivnit tvorbu toho souboru - napadá mne brutální řešení - soubor si zkopírovat do pracovního adresáře, pokud se bude originál lišit, tak udělat zase kopii do pracovního adresáře, tu načíst do db a pak pořád dokola... to by mohlo jít.
Název: Re: Jak poznat změnu souboru
Přispěvatel: Martin Kiklhorn 05 Května 2011, 12:31:39
to musím někam uložit:)
držte si ten součet jen v nějaké proměnné, pokud to pojedete cronem tak máte proměnné prostředí, pokud ve smyčce tak v nějaké interní
do databáze to stejně budete zapisovat s ignore duplicit, přinejhoším se provede jeden zbytečný zápis po restartu.
Název: Re: Jak poznat změnu souboru
Přispěvatel: timmynovak 05 Května 2011, 13:56:02
tak jsem to nakonec vyřeil tím kopírováním, porávnám to přes cmp a případně znovu s ignore načtu. funguje to skvěle. děkuji všem.
Název: Re: Jak poznat změnu souboru
Přispěvatel: GdH 05 Května 2011, 14:12:55
Nebylo by jednodušší monitorovat čas modifikace souboru?
Kód: [Vybrat]
stat -c %y filenebo lépe
Kód: [Vybrat]
stat -c %Y filepro strojové zpracování