Portál AbcLinuxu, 25. dubna 2024 16:53


Dotaz: Cron sudá/lichá

12.8.2009 15:07 Ruda | skóre: 11
Cron sudá/lichá
Přečteno: 996×
Odpovědět | Admin

Dobrý den,

lze nějak zadat do cronu spouštění úlohy v sudý a lichý týden ?

Děkuji za rady

 

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.8.2009 15:16 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jedině spouštět skript pravidelně nějaký den a ve skriptu pak otestovat, zda jde o sudý nebo lichý týden.
wolf09 avatar 12.8.2009 16:38 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Odpovědět | | Sbalit | Link | Blokovat | Admin

echo `date +%W` % 2|bc

Zkusili jste to vypnout a znovu zapnout ?
12.8.2009 19:59 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá

Na to nepotřebujete bc, to zvládne i bash sám. Navíc 'date +%W' se nemusí chovat správně na přelomu roku, takže bych spíš použil něco jako

  if [ $[(`date +%s` / 604800) % 2] -gt 0 ]; then exit; fi
případně bashismus
  if (( (`date +%s` / 604800) % 2 )); then exit; fi
12.8.2009 20:23 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Mozno je zvyknuty pisat skripty, ktore musia byt prenositelne aj na BSD ci Solaris, kde bash nie je az takou samozrejmostou. :-D

Ale s tym %W je to zaujimave: jeden by si myslel, ze implementacia bude dodrziavat ISO definiciou toho, co je prvy tyzden v roku. Hladim do manualu strftime(3) na FreeBSD, zjavne ISO nedodrziava. Mimochodom, ISO standard nie je v tomto bode dodrzany ani v MS Outlook-u. Spravnu ISO kompatibilnu implementaciu maju napr. kalendare mobilnych telefonov istej finskej znacky.

12.8.2009 20:35 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Mozno je zvyknuty pisat skripty, ktore musia byt prenositelne aj na BSD ci Solaris, kde bash nie je az takou samozrejmostou.

Tu horní konstrukci by měl zvládnout i tradiční Bourne shell.

Ale s tym %W je to zaujimave: jeden by si myslel, ze implementacia bude dodrziavat ISO definiciou toho, co je prvy tyzden v roku.

I když bude, stejně může na přelomu roku nastat situace, že budete mít třeba dva sudé/liché pondělky za sebou. Je to stejné, jako kdybyste sudost/lichost dne posuzoval podle sudosti/lichosti pořadového čísla dne v týdnu.

12.8.2009 20:43 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Ale to je v poriadku: zadanie nebolo spustat kazdy druhy tyzden, ale kazdy parny ci neparny tyzden. ;-) Uplne rovnaky problem by nastal, keby islo o spustanie cron jobu kazdy parny den v mesiaci; co navyse do cronu zadat mozno, ze ano.
12.8.2009 23:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Asi mám málo fantazie, ale nenapadá mne, k čemu by bylo dobré spouštět úlohu ob týden s tím, že tu a tam to bude dvakrát za sebou. Nebo spíš v čem by to bylo lepší než spouštět ji opravdu ob týden.
13.8.2009 06:38 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
To je uz ale problem psychicky, nie technicky.
13.8.2009 15:44 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Lichý týden jsou přednášky a sudý týden jsou cvičení. Skript na ně něco připraví ...
In Ada the typical infinite loop would normally be terminated by detonation.
13.8.2009 15:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
V tomto případě by ale bylo vhodnější neposuzovat paritu ani podle absolutního pořadí, ani podle pořadí v rámci roku, ale podle pořadí v rámci školního roku (s vynecháním prázdnin).
13.8.2009 16:23 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Cron sudá/lichá
V takovém případě se parita určuje většinou buď tak, že se stanoví, který týden je první lichý/sudý, a od něj se to pak počítá, případně se stanový, zda parita odpovídá číslování kalendářních týdnů, nebo je opačná. Protože období, kdy ta parita platí, je stěží jeden semestr nebo pololetí – stačí, že se do toho nevhodně trefí prázdniny, a parita se otáčí (aby třeba obě paralelky měly přibližně stejný počet hodin).
13.8.2009 21:03 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Opět stále trváte na svém omylu a motáte se v kruhu. Nemůžete říct "v tom případě by bylo vhodnější bla bla bla podle pořadí v rámci školního roku". To je prostě nesmysl. Jestliže jsou de jure sudé/liché týdny a od nich se odvíjejíci přednášky počítány podle čísla v kalendáři, tak mi prosím vysvětlete, v čem by bylo vhodnější je počítat podle pořadí ve školním roce. Pokud najdete alespoň jeden inteligentní důvod, budu mile šokován.
13.8.2009 21:45 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Hm… Co třeba že by v tom, že by se pravidelně střídaly přednášky s cvičeními? Což je celkem přirozený a logický důvod, proč něco takového vůbec zavádět. Ve vašem pojetí se vám může snadno stát, že budete mít dvě přednášky nebo dvě cvičení po sobě.
14.8.2009 07:25 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Cron sudá/lichá
V tomto případě by ale bylo vhodnější neposuzovat paritu ani podle absolutního pořadí, ani podle pořadí v rámci roku, ale podle pořadí v rámci školního roku (s vynecháním prázdnin).
To je dost jedno, jde o to, že je potřeba jeden týden spustit jednu věc a druhý týden druhou věc. Cron (klasický) neumí periodu 14 dní a už vůbec ne periodu 14 dní s fázovým posunem 7 dní.
In Ada the typical infinite loop would normally be terminated by detonation.
14.8.2009 08:46 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Vsetkym nam je to uz dostatocne jasne. Povodny opytujuci sa si snad vyberie, co potrebuje na riesenie len jemu znameho konkretneho problemu. Pre nas ostatnych navrhujem, aby sme panu Kubecekovi ponechali pravo vlastnit vsetky listove uzly stromu tejto diskusie, lebo inak - zda sa - nebude diskusia konvergovat. :-D
13.8.2009 20:58 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Je to pro někoho lepší například v tom, že pouhým pohledem do kalendáře zjistí, jestli bude nebo nebude spuštěna. Například někteří lidé volí spouštění určitých úloh třeba každou středu, i když technicky by stačilo je spouštět každých 9,5 dne. Ovšem stroje tu jsou pro lidi, ne lidi pro stroje, takže je preferováno pro lidi deterministické spouštění. Dále to může být úloha, jejíž spouštění v lichý/sudý týden vyžaduje úřední aparát. Fantazii se meze nekladou. Spuštění dvakrát za sebou je tak řídké, že jej lze zanedbat, zvláště pokud takovéto spuštění nepředstavuje žádný problém.
13.8.2009 21:15 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Ovšem stroje tu jsou pro lidi, ne lidi pro stroje...
Zlaté slová, do kameňa vytesať.
13.8.2009 21:49 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Pokud se má něco spouštět "každé sudé pondělí", pak to téměř vždy znamená, že se to má spouštět s periodou dvou týdnů. V mnoha případech samozřejmě nevadí, když se to jednou za rok spustí dvakrát s odstupem jednoho týdne, ale nenapadá mne žádný dostatečně názorný příklad, kdy by to přinášelo výhodu oproti setrvání u dvoutýdenní periody. Možná by bylo konstruktivnější, kdybyste místo "argumentů" typu "opět stále trváte na svém omylu" nebo "motáte se v kruhu" zkusil nějaký navrhnout…
12.8.2009 21:27 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Sudý resp. lichý týden se opravdu říká týdnu, který má sudé resp. liché pořadové číslo v daném roce. Mohou být tedy dva sudé resp. liché týdny za sebou. Kdyby šlo o spouštění každý druhý týden tak to je něco jiného.
12.8.2009 22:04 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Dva parne tyzdne za sebou? :-D
13.8.2009 12:51 xobot
Rozbalit Rozbalit vše Re: Cron sudá/lichá

da sa, ak si zoberieme konvenciu grubu, tak 0. a 52. ;-)

13.8.2009 08:38 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Hladim do manualu strftime(3) na FreeBSD, zjavne ISO nedodrziava.

Neviem či to s tým súvisí, ale poradové číslo týždňa v roku závisí aj od locale.
13.8.2009 10:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Především má strftime() podle POSIXové manuálové stránky tři různé šablony: %U, %V a %W. Šablona %W označuje jedničkou první týden, který je celý v daném roce, %U dělá totéž pro týdny začínající nedělí. Šablona %V používá tu oficiální specifikaci, že za první se považuje první týden (začínající pondělím), kterého je v daném roce většina. Žádná z nich by neměla záviset na locale. Je ale možné, že na některých systémech není strftime() POSIX compliant.
wolf09 avatar 13.8.2009 11:36 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Cron sudá/lichá

Vysel jsem Unixu a pisu scripty, aby sly v csh

Zkusili jste to vypnout a znovu zapnout ?
13.8.2009 11:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Cron sudá/lichá
Nedělal jsem žádný pořádný průzkum, ale jsem přesvědčen, že systémů, kde je csh (nebo jeho rozšíření) a není sh (nebo jeho rozšíření), bude výrazně méně než těch, kde je to naopak.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.