( _Franko_ | 2025. 09. 04., cs – 22:04 )

Figyelmedbe ajánlom az at parancs dokumentációját, azon belül a -t [[CC]YY]MMDDhhmm[.SS] opciót. Úgy van, a .SS másodpercet jelent. Elhagyása esetén 0 az alapértelmezés.

Most sehol nincs telepítve, de én láttam ebből olyat anno (kurva rég használtam), ami nem ismerte, szóval szerintem nem alapozhatsz erre, mert vannak rendszerek, ahol bizony nincs másodperc csak [[CC]YY]MMDDhhmm.

Már attól eltekintve, hogy - mint írtam - ha szükséges, párhuzamos helyett szekvenciális job futtatást tesz lehetővé, ezzel pedig esetleg kisimíthatja az általad fenyegetőnek jelzett peak terhelést.

Nem simítja ki, hogy simítod ki batch-al, ha három taszkot kell futtatnod 1, 5 és 15 percenként, mert mindegyik :00 másodperckor indul? Ja, hogy hákolnod kell? Systemd meg tud mutual exclusion-t.

Szintén ajánlom elolvasni az atd dokumentációját is, különös tekintettel a -l LOADAVG és a -b SECONDS opciókra amellyel meghatározhatod, hogy mekkora CPU-terhelésérték  alatt indítsa a batch a jobokat, és mennyi idővel elcsúsztatva indítsa az "egyszerre" futtatandó jobokat.

Nagyszerű, tehát bizonyos load felett nem lesz ütemezve a job? És ez a nagybetűs megoldás? Monitoring rendszer majd szól? Véletlenül se hákolás.

Rajtad kívül senki nem beszélt sleep-ről.

Felírtam a listára, mert egy csomó ilyet láttam, mint hákolás, ha már a többit használod, akkor ez sincs messze... :D

Nem lehet, hogy ez az utalás csak annyit jelent, hogy sosem használtad a cron-t megfelelő módon, csak hiányzott - de nagyon - a másodperces pontosság?

De, használtam, és rájöttem, hogy a systemd kurvajó a cron-hoz képest. Van, aki ezt nem tudja megugrani és tényleg mindenfélét képes használni, csak systemd-t, nem, mert a fúj, undorító.

Neked körbetákolás, nekem megfelelő működés. Amúgy ha a peak-terhelést úgy kerülöm ki, hogy én időzítem - mondjuk x:00 meg x:15 meg x:38 -ra a jobokat a sytemd-timerrel az nem hákolás, ha pedig belövöm, hogy a rendszer globálisan hagyjon 20 másodpercet az egyes jobok között (az alapértelmezett 1 perc helyett), az körbetákolás. Értem.

Ez színtiszta szalmabáb érvelés. Ráadásul a globálisan 20 másodperc egy kurvára hatékony dolognak néz ki, az, hogy a systemd képes függőségeket kezelni és így összevárni job-okat, az persze fúj, undorító. Legyen global 20 másodperc szünet, mindegy, hogy a job 2 másodpercig fut vagy 3 percig. WTF? Hol élünk? A 1900-as évek végén?

De valóban, nyudodtan gondolhatott volna a cron fejlesztője valamikor a 70-es évek közepén arra, hogy majd egyszer eljön a 64-bites time_t ideje, és az is mekkora baromság már, hogy a POSIX szabvány alkotói  (OpenGroup vagy mittudomén ma kik ők) még mindig nem szabványosította a másodperc pontos cron-t. De ez is csak azt mutatja, hogy nem én vagyok az egyetlen, aki szerint kevésbé kritikus dolog a sec-pontosságú job-ütemezés.

Nézd, maradhatsz a hetvenes években, csak az újabb eszközök pont azért keletkeztek és terjedtek el, mert a régi eszközök nem voltak elég jók, többek között a systemd timer is ezért van, mert tud olyan dolgokat, amiket a cron nem tud és tud olyan dolgokat, amelyek csak erős körbetákolással tudsz megoldani cron alapokon, lásd a körbetákolásaidat. Ez van. Tudom, systemd az fúj, undorító. Inkább alapozol 50 éves körbetákolásra, 20 másodperces szünetekre, egyebekre, olyan eszközre, amelyik képes függőségeket, kölcsönös kizárást, job-ráfutásvédelmet, egyebeket, az bizony szar. És akkor ott tartunk, hogy nem érted a mai világot, bezzeg a régi szép időkben nem voltak ilyen faszságok.