Vyprázdnění souboru jednou za 5 hodin

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
Vyprázdnění souboru jednou za 5 hodin
« kdy: 09. 06. 2015, 16:32:51 »
Prosím jak byste vyprázdnili soubor "buffer" každých 5 hodin z bash skriptu běžícího každých 10 minut?
« Poslední změna: 09. 06. 2015, 17:02:26 od Petr Krčmář »
Linux nováček - CeskeForum.com


co_to

Je to dobre, Fotka je stale s nami. :) Jsem jediny, kdo se nechyta a nevi co vlastne chce?

fotka

  • ***
  • 216
    • Zobrazit profil
    • Linux forum
    • E-mail
možná, že lépe řečeno "vyprázdnit jakýkoliv soubor"
>buffer
to vyprázdní, to já vím, otázka je jak to udělat aby to bylo každých 5 hodin z toho bash skriptu spouštějícího se častěji, už jsem na něco přišel ale ještě to nemám vykoušeno. Dávám prostor Vám pokud máte zajímavý nápad. děkuji
Linux nováček - CeskeForum.com

Filip Jirsák nepřihlášený

Nejjednodušší by mi připadalo spouštět jiný skript každých 5 hodin. Dále si můžete někam poznamenávat časovou značku, při spuštění  zjistit, zda od značky uplynulo více než X hodin (kde X je 5 mínus doba mazání mínus nějaká rezerva), a pokud ano, provedete danou akci a značku přepíšete aktuální hodnotou. A nebo bezestavově s pomocí přesného času - určit si nějaký počátek, zjistit, kolik hodin uplynulo od daného počátku a pokud je to dělitelné pěti, provést danou akci.

BLEK.

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #4 kdy: 09. 06. 2015, 17:10:08 »
Kód: [Vybrat]
if (i > 30) {

    vyprazdni();
  i = 0;
}

i++;


Peta Kellneru

Nejjednodušší by mi připadalo spouštět jiný skript každých 5 hodin. Dále si můžete někam poznamenávat časovou značku, při spuštění  zjistit, zda od značky uplynulo více než X hodin (kde X je 5 mínus doba mazání mínus nějaká rezerva), a pokud ano, provedete danou akci a značku přepíšete aktuální hodnotou. A nebo bezestavově s pomocí přesného času - určit si nějaký počátek, zjistit, kolik hodin uplynulo od daného počátku a pokud je to dělitelné pěti, provést danou akci.

chytre chlapec, spravne mysli i na rezervu, me ale praskla

NA

možná, že lépe řečeno "vyprázdnit jakýkoliv soubor"
Libovolný soubor se nejlépe vyprázdní jeho smazáním.
Můžeš testovat počítadlo skriptu, nebo stáří souboru, nebo čas od posledního smazání, nebo ...

kozzi11

možná, že lépe řečeno "vyprázdnit jakýkoliv soubor"
Libovolný soubor se nejlépe vyprázdní jeho smazáním.
Můžeš testovat počítadlo skriptu, nebo stáří souboru, nebo čas od posledního smazání, nebo ...

IMHO to je blbost. Smazanim se moc dobre nevyprazdni a neni to moc dobry zpusob. Mnohem lepsi je ho opravdu vyprazdnit nez smazat.

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #8 kdy: 09. 06. 2015, 19:18:08 »

Tomxoxoxo

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #9 kdy: 09. 06. 2015, 19:34:07 »
cron?

OMG

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #10 kdy: 10. 06. 2015, 07:30:50 »
Prosím jak byste vyprázdnili soubor "buffer" každých 5 hodin z bash skriptu běžícího každých 10 minut?
treba si muzes ulozit cas posledniho vyprazdneni souboru a dalsi vyprazdneni souboru udelas az za definovany cas a po vyprazdneni ulozis novy cas posledniho vyprazdneni souboru...

Wololo

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #11 kdy: 10. 06. 2015, 12:06:45 »
co takhle pouzit find?

http://stackoverflow.com/questions/543946/find-mtime-files-older-than-1-hour

a je rozhodne lepsi do souboru nasypat echo "" > buffer.txt

jeste je nejaky lepsi zpusob, ale rozhodne nejako podobne.

ttyghum

Re:Vyprázdnění souboru jednou za 5 hodin
« Odpověď #12 kdy: 10. 06. 2015, 13:25:11 »
co takhle pouzit find?

http://stackoverflow.com/questions/543946/find-mtime-files-older-than-1-hour

a je rozhodne lepsi do souboru nasypat echo "" > buffer.txt

jeste je nejaky lepsi zpusob, ale rozhodne nejako podobne.

Soubor má být vyprázdněn každých 5 hodin, nikoliv jen v případě, že soubor nebyl 5 hodin modifikován.

Řešil bych to asi takhle:
Pokud je soubor /tmp/foo_flag starší jak 5 hodin, odstraním ho (find nebo /tmp/foo_flag vytvářet pomocí date +%s > /tmp/foo_flag a porovnám to..).
Pokud neexistuje /tmp/foo_flag, vytvořím ho a vyprázdním foo_buffer.