On Tue, 24 Jul 2012, Petru Ratiu wrote:

> 2012/7/24 Catalin(ux) M. BOIE <[email protected]>:
>> On Mon, 23 Jul 2012, Petru Ratiu wrote:
>>
>> Salut.
>>
>>> S-au milostivit zeii de mine si schimb prin mediul de productie
>>> distro-ul ala de hackeri care stiu sa compileze cu altul de oameni
>>> care au si alta treaba, insa mi-au ramas niste mici mega-features pe
>>> care trebuie sa le fac sa mearga la fel.
>>>
>>> Printre ele e fcron, un mega cron replacement (pentru ca se stie ca
>>> vixie e pt. babaciuni), care are insa 2 features care sunt destul de
>>> folosite:
>>>
>>> 1. stie sa ruleze chestii mai des de 1 minut
>>> 2. stie sa-si faca lock sa nu ruleze un job de mai multe ori simultan
>>>
>>>
>>> Pt. 2 as putea face ceva wrapper, dar probabil exista ceva existent,
>>> pt. 1 am oricum nevoie de altceva decat vixie (probabil un shotgun,
>>> da' pana atunci defilam cu ce avem).
>>>
>>> So, question: cine mai are nevoi ca cele doua de mai sus, cum le
>>> rezolva in mod normal? (as prefera sa nu mai folosesc fcron).
>>
>> Eu folosesc asa pentru 2:
>> * * * * *       flock --exclusive --nonblock --close
>> /path/to/nume_sugestiv.lock aici_pui_comanda
>>
>> flock-ul e imul la reboot-uri la momentul nepotrivit pentru ca e in
>> kernel, efemer.
>>
>> Pentru 1:
>> * * * * *       flock ... /path/catre/comanda
>> Iar "comanda" arata asa:
>> while [ 1 ]; do
>>         chestie executata la 10 secunde
>>         sleep 10
>> done
>>
>
> Ca sa fiu enervant, un while ( comanda; sleep 10) done  nu executa
> comanda la 10 secunde, ci la 10s + cat ii ia comenzii sa termine :P

Evident.
Complet ar fi:
while [ 1 ]; do
        # lock-ul e optional...
        # atentie la "&" de la sfirsitul comenzii
        flock --exclusive --nonblock --close \
                chestie_executata_la_10_secunde &
        sleep 10
done

(Evident, vor fi 10s + Xms, dar e suficient de bine)

Clar, ideal era sa faca asta cron-ul.
Pentru cron-uri distribuite exista cel putin o solutie (care foloseste 
cgroup-uri pentru izolare) dar nu mai stiu cum se numeste. Sorry.

> Multumesc tuturor de idei da' speram ca a aparut ceva mai complet in
> ultimii 20 de ani. De ex. ar fi super-duper useful sa colaboreze intre
> ei agentii de pe mai multe servere, ca sa nu mai fie SPOF masina pe
> care e programat un cronjob si nici sa nu risc sa ruleze jobul de mai
> multe ori decat trebuie. Sau sa pot produce ceva raport cu ce joburi
> sunt active, cat de des ruleaza, cat le ia in mod normal, outputs de
> la ultimul run, samd, samd. Da, stiu ca cu suficient scuipat, scotch,
> cuie si ciocan pot produce scripturi care sa faca toate chestiile
> astea, problema e ca probabil nu ma pricep destul cat sa fac asta
> bugfree si ca nu-s features atat de critice incat sa-mi permit sa
> sacrific timp inventand eu roti patrate.
>
> Aparent e o problema de care se loveste multa lume si din pacate
> majoritatea se opresc la faza cu wrapperul de 2-3 linii in sh
> (probabil pentru ca scratches their back enough), asa ca googlatul
> gaseste mainly solutii de-astea de cli boyscout (evident ca acu tzshpe
> ani cand m-a mai interesat problema gasisem vreo cateva solutii
> interesante pe care am zis ca le testez cand oi avea timp, si evident
> ca n-am bookmarks - #1stworldproblem).
>
> -- 
> Petre.
> _______________________________________________
> RLUG mailing list
> [email protected]
> http://lists.lug.ro/mailman/listinfo/rlug
>

--
Catalin(ux) M. BOIE
http://kernel.embedromix.ro/
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui