Mik azok a Mautic CRON JOB-ok és hogyan kell beállítani ?

A legjobb magyar hírlevél és AI marketing automatizáló 100%-ban ingyenes + open source CRM: A Mautic képzés részeként a magyar Mautic cikkek következő fejezete:

INGYEN bárkinek
látható eme cikk ennyi része:
INGYEN
láthatod bejelentkezés után:
A fizetős Mautic képzés része.
30%
20%
50%
* SÖTÉTZÖLD: Eme cikk kb. ennyi %-a látható bejelentkezés nélkül is INGYEN mindenkinek! Ezek az arányok képzésenként és cikkenként változnak!
* VILÁGOSZÖLD: Ezen cikk ennyi %-át már csak a bejelentkezett de örökké ingyenes tagság láthatja itt lentebb a világoszöld keretű részben.
* KÉKES-LILA: Konkrétan eme cikk kb. ennyi %-át ( = a haladó részét ) csak a fizetős Mautic képzést megvásárlók láthatják itt legalul a lila keretű részben.
Mautic Tags

CRON =

A „cron” nem egy valódi szó (angolul se) önállóan, hanem csak a görög "chronos" = idő szóból származik, annak a rövidítése, tehát a cron lényegében időt jelent, és ezt a cron nevet névként adtak a Linux időzített feladatkezelő szolgáltatásának, amivel feladat parancsokat lehet időzíteni.

JOB =

MunkaFeladat = egy elvégzendő feladat / parancs azaz programkód ami egy munka elvégzéséhez meghatározott feladatokat hajt végre. 
JOBS = feladatok ( többes számban angolul )

CRON JOB =

IDŐZÍTETT és 100%-ban AUTOMATIZÁLT feladat. Az esetünkben egy (vagy több) egyénileg teljesen személyreszabható módon meghatározható időközönként futtatandó Mautic parancs, illetve azok listája, amik közelezően szükségesek a helyes Mautic működéshez
Viszont mindig csak 1x kell jól beállítani őket a Mautic telepítésnél (vagy frissíteni picit upgradelésnél), és ha valóban jól állítottad be (pl. megfelelő időközönként) és nem felejtettél ki semmit (paramétereket se), akkor soha nem kell többet a cron jobokhoz nyúlni, kivéve ha szervert váltasz vagy ha fontos szerverbeállításokat változtatnál vagy ha valami meghatározó dolog nagyon megváltozott (pl. ha új plugint telepítettél, vagy sokszorosára nőtt az adatbázisod vagy elértél valami limitet, vagy ha a statok [pl. szerverleterhetltség] alapján optimalizálni akarsz vagy ilyesmi.). Tehát minden mautic cron job 1-1 automatikusan ütemezett feladat, ahol nagyon fontos az időzítés, hogy pontosan mit mikor futtatsz!

HOL tudom a Mautic CRON JOBOK-at futtatni + beállítani ?



A parancsot 3 helyen tudod futtatni:

1.:
- SSH-ban manuális futtatáshoz :
Ez a parancssoros, közvetlen szerver elérés SSH ADMIN kulccsal, amit csak a saját dedikált vagy VPS privát szervereknél lehet csak alkalmazni általában, de ha van pl. egy jó kis olcsó VPS privát szervered akkor ez az ajánlott és legjobb módszer minden manuális kézi parancshoz (cron jobokhozis), kivéve ha ugye időzíteni akarod! Tehát telepítésnél itt érdemes futtatnod a parancsokat a tesztekhez és első installálásnál (vagy upgradeknél, frissítéseknél) a manuális beüzemeléshez, finomhangoláshoz, és aztán ha megvan mit hogyan akarsz akkor ugye a Cron Job-okban kell automatizálni őket!

2.:
- Terminál-ban manuális futtatáshoz :
Ez a tárhely szolgáltatód csökkentett tudású, limitált parancssora (kb. egy "SSH light" csak NEM admin jogokkal), ami osztott tárhelyeknél azaz a szokásos "shared hosting"-okon, azaz a legolcsóbb féle szokásos általános tárhelyeknél szokott lenni (pl. wordpresshez is). Ez lehet pl. a cPanel admin felületed parancssora (ott is terminálnak hívják). Tehát ezt csak akkor kell használni ha nincs SSH.

3.:
- CRON JOB-okkal AUTOMATIZÁLNI :
Ha már meg van mit mikor hogyan akarsz és milyen paraméterekkel milyen időközönként futtatni (amiket konkértan leírok nemsoká) akkor "a cron jobokat, a cron joboknál kell" automatizálni! Tehát ezek a fő lényegi helyek (amiket itt alább listázok konkrétan) ahova be kell írnod a parancsokat majd végső tartós helyükre! A fentebbi 2 másik hely csak manuális tesztre, átmenetileg jó, hisz minden más csak 1x tudja lefuttatni a parancsokat kézzel, kivéve ha "a cron jobokba írod be" mert csak itt van időzítő a végtelenül örökké ismételt parancsfuttatáshoz! És ilyen örökké ismétlődő időzítőkkel is TUTIRA MUSZÁJ IDŐZÍTENED CSOMÓ Mautic parancsot, különben nem fog jól működni vagy egyáltalán nem fognak működni dolgok! Tehát kritikusan FONTOS, ELENGEDHETETLEN összetevője a Mautic telepítésének, beüzemelésének és hosszútávú normális, alap működésének is a megfelelő cron job beállítás és hatékonyra beoptimalizálása (  a cache törlést is nagyon ajánlott pl. legalább hetente 1x futtatni), amihez neked most már szinte ELÉG LESZ 1-2 COPY PASTE ezekhez az én cikkemből, mert mindent én már készre megírtam Neked, de előbb nézzük, hogy:

HOVA KELL BEÍRNI a Mautic CRON JOBS parancsokat KONKRÉTAN?



A fentebbi 3 hely közül ugye az 1+2 csak az installáláskor / frissítéskor / upgradekor / hibakeresésnél kell, de a tartós helye a cron joboknak a a 3., ami függ attól, milyen a tárhelyed (A/B), tehát a fenti 3. pont tényleges HELYE:

A:
SHARED HOSTINGON / OSZTOTT tárhelyeknél = SZOKÁSOS tárhelyeknél:

cPanel admin felületeden ( vagy a tárhelyed hasonló admin felületén ) keress valami ilyesmit:
- Cron / Crons
- Cron Jobs
- Cron feladatok
- Ütemezett feladatok
- Időzített feladatok



B:
VPS / privát szervereknél:

A leginkább ajánlom ezt:
/var/spool/cron/crontabs/root
tehát a "root" nevű file (kiterjesztés nélkül, hisz ugye 99% eséllyel linuxos a szervered, tehát ez csak akkor más ha pl. windowos a szervered vagy spéci egyéb de akkor ugye úgy is értesz hozzá). Ez a crontabs mappa a felhasználói szintű cron job fileok helye, tehát itt a "root" nevű felhasználóhoz tartozó file kell, vagy ehelyett választhatsz természetesen mást is (pl. "admin") HA más nevű admin jogú felhasználóval fut a szervered, vagy a mauticod direkt külön akár nem admin jogú felhasználóval futtatod, amit sokan tanácsolnak, tehát lérehozhatsz egy üres pl. "a-Mauticodat-Futtató-Linux-Felhasználód-Neve-Precízen" nevű filet is, ami biztonsági szempontból lehet jobb is, de a lényeg hogy bárhol futnak, sok helyről lehet futtatni, sok különböző fileból, a lényeg, hogy fussanak, és mivel ugye sok egyéb "root = admin" jogokkal bíró cront is lehet igényel majd a Mauticon kívül is a szervered (és mivel a biztonságot úgy is megoldottad ha ügyes vagy) így szerintem egyszerűbb  mindent egy helyre tenni a root fileba, csupán csak a könnyebb átláthatság és gyorsabb és egyszerűbb szerkeszthetőség miatt (hiszen ha nagyon akarod akkor a root fileból is lehet futtatni bármilyen csökkentett jogú, nem admin módban is bármelyik parancsot). De ugye pakolhatod még a cron jobokat akár ide is ha nagyon akarod, meg a szokásos ubuntu linux szerverektől picit eltérő linux szervereknél ugye lehet picit máshol van a cron jobok mappája ahol az a file van ahova lehet cron jobokat beírni pl.:

/etc/crontab 
nevű file a rendszerszintű cron jobok helye szintén admin jogokkal.

/etc/cron.d/   
mappán belül minden filet futtat cron jobként

Tehát igazából mindegy honnan futtatod a cron jobokat, a lényeg, hogy jól fussanak, viszont szerintem nagyon hasznos egy helyre tenni mindig mindent, az átláthatóság és gyorsaság (könnyeű biztonsági kimentések) stb miatt a fenti:
/var/spool/cron/crontabs/root
fileba, ami mellett még azon érv is szól, hogy nagyon könnyen és gyorsan lecsekkolható eme file valós idejű tartalma eme parancsal:

crontab -l



És instant szerkeszthető is ezzel:

crontab -e



NAGYON FONTOS még (de szintén csak privát szerverekhez), hogy ha eme parancsal szerkeszted akkor semmi egyebet nem kell csinálnod, mert a parancs egyből frissíti is a háttér alkalmazást és talán aki windowshoz szokott ez a módszer lehet neki a legegyszerűbb, mert eme szerkesztő még arra is vigyáz, hogy megfelelő formátumban legyen mindig elmentve.

Viszont én akkor is szeretném ajánlani a manuális letöltést és feltöltést FTP-vel eme filehoz, és saját szövegszerkesztővel a kézi szerkesztést, mert ugye amúgy is érdemes a fileról mindig biztonsági kimentést készíteni szerkesztés előttről és utánról is (szépen dátumozva, megjegyzésekkel), és ugye minden profi mindig mindenről készít módosítás előtt ilyen biztonsági kimentést tehát ha már amúgy is le van töltve a file akkor ugye nyílván egyszerűbb a jól megszokott (pl. kate nevű linuxos) fileszerkesztőt használni, vagy hasonlót (pl. leafpad, vagy windowsról a notepad, stb), de NAGYON FONTOS, hogy:

SOHA ne használd a cron job fileok szerkesztésére a fejlettebb vagy szokásos szövegszerkesztőket, hanem mindig a legegyszerűbb sima natúr, alapból is TXT  típusú fileokba mentő szövegszerkesztőket használd vagy nagyon ügyelj arra hogy nehogy .doc vagy bármi egyéb bonyolultabb legyen a file kiterjesztése hanem mingig sima TXT = a legegyszerűbb féle szöveges file, és természetesen akkor is ennek kell legyen a file típusa ha átnevezted vagy kitörölted a kiterjesztését, tehát végül ugye semmi kiterjesztés nem kell rá ugye soha hisz a linux nem használ filekiterjesztéseket. Tehát:

A "root" file szerkesztéséhez használj:

- Linuxon: Kate, Leafpad, stb.

- Windowson: NotePad

És a file formátuma MINDIG legyen TXT, azaz maradjon meg az eredeti formátuma és soha ne szerkeszd office-al, mert így a legvalószínűbb, hogy jól fogja elmenteni, különben nemcsak a cron jobok nem fognak működni hanem akár az egész szerveredet is kiakaszthatja 1 db betühiba!
Pl.:

KRITIKUSAN FONTOS még:

- A Cron Jobok MINDIG egy sorban legyenek!
Ha iszonyat hosszú pl. 5 soros a szöveg akkor is létezik olyan, hogy kifér egy sorba, és akkor is egy sorban kell lenniük és ez esetben a szövegszerkesztőd csúszkát oldal irányba is VAGY csak látszólag tördeli a szöveget mert a láthatatlan "sortörés jeleket" soha nem mutatja alapból, ígyaz a  legtutibb ha a szövegszerkesztődben beállítod hogy mutassa ezen láthatatlan jeleket is VAGY mégjobb: mutassa a sorok számát.
A linuxon ezek a felsorolt szövegszerkesztők általában alapból ugye az ilyen programozóknak való precíz módon működne, tehát elég ha alapból látod a sorok számozását pl. baloldalt és akkor instant láthatod hogy 3 sornyi szöveg mellett is csak 1 db sorszám van-e vagy minden sor új sorszámot kap-e és ha igen akkor ki kell töröljed a láthatatlan sortörési jeleket azaz az "entereket"! Tehát simán be tudod úgy állítani a szövegszerkesztőt, hogy tördelje a sorokat és soha ne kelljen jobbra balra görgetni de mégis egy sorban legyen minden, ahogy ugye alapból is szokott lenni minden root fileban, csak ha ezekre nem figyelsz könnyű elbarmolni úgy az enterekkel hogy észre se veszed főleg ha nem is tudsz arról, hogy léteznek láthatatlan sortörési jelek is amiket láthatóvá lehet tenni stb, és ugye a linux szervereknél sok egyéb helyen is nagyon fontos ilyen precízséggel megtanulni szerkeszteni a fileokat, meg biztonsági mentéseket csinálni, különben órákat és napokat szarhatsz el később majd a hibakeresésre, tehát:

- MINDIG EGY SORBAN legyen MINDEN Cron Job
- NE legyen sortörés akkor se ha 5 sorba fér csak ki
- A notepad, kate, leafpad is ki tudja írni a sorszámokat a sorokhoz (1 klikk a beállításokban)!
- NE legyen formázva a szöveg SEMMILYEN módon (se kisbetű nagybetű, se betűtípus se semmi, mert minden natúr egyenforma szöveg, azaz a sima legyegyszerűbb szöveges forma az ilyen kritikus fileokban) azaz:
- TXT vagy a legegyszerűbb sima szöveges file formátum MARADJON meg, tehát
- NE ".doc" vagy bármi egyéb formátumú legyen és mindig pontosan egyeznie kell az adott felhasználó nevével, azaz
- NEM szabad file kiterjesztést rárakni (vagy vedd le ha tett rá vmi pl. a notepad jobb klikk "szerkesztés XY programmal" után)

+ ÉS a legfontosabb még hogy minden ilyen manuális cron job file szerkesztés és FTPvel felülírással frissítés után futtasd eme parancsot is:

crontab /var/spool/cron/crontabs/root


Mert különben enélkül nem frissíti a folyamatosan futó háttéralkalmazást és nagyon esélyesen szerverújraindításig a régi becachelt cron jobjaid fognak csak futni, nem az új frissítettek!

Ez mind persze bonyolultnak tűnhet elsőre (pedig nagyon nem az), de ezért mondtam, hogy az amatőröknek, windowosoknak lehet könnyebb a 

crontab -e


parancs az apróbb módosításokhoz, mert ott semmi ilyesmire nem kell figyelni, és az előző frissítő parancsot is futattja magától eme parancs.

Tehát ha megvan, hogy hova tudod beírni a Mautic parancsokat, akkor oda kell beírnod a lentebből copy pastézható cron job-okat, de nagyon fontos, hogy ezt pontosan hogyan teszed, pl. milyen formátumban és módon, milyen időzítésekkel és paraméterekkel, tehát!:

HOGYAN MŰKÖDNEK a Mautic CRON JOBok ?



NAGYON FONTOS:
A Mautic CronJob parancsok mindig 1-1 sor, ahol fontos, hogy NE legyen benne sortörés (ha van akkor hibát okoz és kiakaszthatja az egész rendszert!) és minden ilyen 1 soros parancsnak 4 RÉSZE VAN, és mind a 4 résznek számos formája lehet!

Eme 4 db részből az utolsó 3 db rész működését és variációit leírtam a cache clear cikk ingyenes részében, tehát itt csak a +1 részt fogom részletezni az időzítési részt azaz a csillagos részt, tehát a legegyszerűbb cron job példa pl.:

* * * * * php bin/console cache:clear


1. rész:
* * * * *

2. rész:
PHP

3. rész:
BIN/CONSOLE

4. rész:
CACHE:CLEAR



1. rész:

* * * * * = 5 db csillag ami az időzítő rész és aminek 5 külön alrésze van, tehát minden csillag egy időegységet jelöl, és számos értéke lehet nem csak * (ahol a  * = "minden lehetséges érték esetén", tehát pl. minden percben, vagy minden órában, stb. [azaz azok kezdetén]):

Tehát az 5 csillag 5 db mezőjének lehetséges értékei sorrendben:

- PERC: 0-59  ( Nincs 60. perc, tehát ha minden egész óra kezdetén akarsz futtatni akkor ide 0 kell. )

- ÓRA: 0-23 ( Nincsen 24. óra. 0 az az éjfél. 12 a dél )

- NAP: 1-31 ( Ez csak akkor aktiválódik ha a dátum+időben ez szerepel, tehát ha pl. 31-et állítasz be ide akkor februárban soha semmi sem fut akkor se ha mindenhol másol csak csillag van )

- HÓNAP: 1-12 ( vagy némely szervereken használható az angol rövidített verzió is pl. "jan", "feb", stb)

- A HÉT NAPJA ( 0-7, ahol a 0 is vasárnap meg a 7-es is, hétfő = 1, kedd = 2, stb. Van ahol itt is lehet rövid neveket használni bizonyos rendszereken: sun, mon, tue, stb.  )

Tehát ez az időzítés beállítása, ahol lehet sokféle az érték bármelyik csillag helyén: pl. 1 szám, vagy több szám is vesszővel vagy kötőjellel vagy per jellel elválasztva és így ezekkel időzítesz!

Mindenhol ahol egy csillag van az azt jelenti hogy "mindig fut, abban az időkeretben amihez a csillag tartozik" (azaz annak az időtartománynak az elején), tehát az 5 db csillag egymás után azt jelenti, hogy fut minden hónap minden nap minden órában minden percben a hét minden napján. Tehát 1 perc a legszűkebb időkeret, aminek a precízségével tudsz időzíteni (ha másodperces precizitás kell akkor ahhoz egyéb trükkök vannak amikről itt nem írok, mert Mautichoz nem kell).

A cron úgy működik, hogy minden mező között "ÉS" a paraméter, azaz az 5 db mező mindegyikének teljesülnie kell, hogy a parancs lefussonkivéve: amikor a hónap napja (3. mező) és a hét napja (5. mező) együtt van megadva, mely esetben nem "ÉS" hanem "VAGY" paraméter van a 3. és 5. mező között, magyarán akkor is lefut ha "csak a hónap napja" vagy ha "csak a hét napja" teljesül (3. VAGY 5. mező) ÉS a többi mező is mind teljesül (1. + 2.  + 4. ). Tehát minden mezőt "ÉS"-el kapcsol össze kivéve a napokat HA a napokat mindkét helyen IS (3.+5. mezőben) egyszerre adod meg, hiszen a napok 2x is szerepelnek két féle módon is: az 1-31 napként és a hét 0.-7. napjaként (ahol 0=7.).  De ez a kivétel cron implementációfüggő, nem minden rendszeren van így, csak a legtöbb általános linux szerveren. 

+ PÁR PÉLDA példa:

0 8,14 * * * php parancs
Ez minden nap lefut reggel 8:00-kor, és délután 14:00-kor. Tehát egy mezőbe vesszővel is fel lehet sorolni az adott időtartományhoz és a vessző "VAGY"-al választja el őket az adott mezőn belül. Tehát akkor is fut a parancs ha vagy ez vagy az vagy amaz van a felsorolásban (azaz a pontos dátum+órában)

Osztás jel = per jel: "/" = "adott lépésközönként ismétlődés"
Pl.:
*/15 a perc mezőben → minden 15. percben:
*/15 * * * * → 0,15,30,45 perckor minden nap minden órában.

0 */2 * * * → minden második órában, egész órakor: 0:00, 2:00, 4:00 ... 22:00

+ Használható kötőjelekkel azaz tartományokkal is kombinálva:
pl. ha a nap mezőjébe rakod a"10-20/2"-t, akkor minden nap ennyi órakor futhat: 10, 12, 14, 16, 18, 20

Vagy pl.:
0 9-17 * * 1-5 php parancs :
Ez lefut hétfőtől péntekig minden egész órakor 9 és 17 óra között.

Ezeken kívül is vannak még egyéb használható speciális karakterek is sok szerveren (de nem mindenhol!) pl. #, "L", "W" ha olyasmit akarnál mint pl. legközelebbi hétköznap (W), vagy a hónap első keddje, vagy az utolsó napja (L) vagy ilyesmi, ami mautichoz nem kell, de a ChatGPT instant generál neked bármi ilyesmit is ha nagyon kéne.


+ FONTOS MŰKÖDÉSI HOGYANOK:

- Minden parancsfuttatás teljes egészében újra lefuttatja a parancsot akkor is ha még az előző percben elindított ugyanazon parancs még fut akkor is. És pl. a * * * * * esetében ha 1 percnél hosszabb ideig fut egy parancs (mert sok adatot dolgoz fel ami simán megeshet) akkor több példány fog futni ugyanabból a parancsból egyidőben 2 teljesen külön szálon: egymástól teljesen függetlenül futnak ugyanazok a parancsok is PÁRHUZAMOSAN (ha egy időben futnak)! Ennek a működésnek a megértése nagyon fontos, tehát egyik cron job se állít le semmit, csak elindít akkor is ha ugyanazon parancs még fut és annyiszor külön szálon futtatja mind és így akár össze is akadhat vagy hibát generálhat ha egymásra futnak ugyanazon parancsok, amit angolul "overlap"-elésnek hívnak, tehát ahogy nő a mauticod pl. 2-20 gigára az adatbázis, úgy érdemes lehet egyre nagyobb időbeli távolságot tartani az erőforrás igényesebb parancsokhoz, hogy ne fussanak túl sűrűn és biztosan vége legyen mielőtt ugyanaz újra elindulna. Eme cikkemben lévő időközök egy 0-10-20 gigás mautic adatbázishoz is jók kell legyenek, de afölött már érdemes lehet némely parancsra ránézned melyik mennyi idő alatt szokott futni és ha kell optimalizálni az időközöket.

- A legtöbb parancs HA befejezte a munkáját akkor magától leáll (kivéve egy az itteniek közül, aminél ezt jelzem majd, mert fontos paraméterrel leállítani!)! A legtöbb parancs 1-2 másodpercen belül áll le, de van ami később sok percbe is tellhet amíg fut (ahogy nő a mauticod emberekkel, kampányokkal, automatizációkkal, stb.).

- Tehát ahogy nő majd a Mauticod úgy érdemes figyelni ezekre az időközökre (pl. 10 ezer kontakt és 1-2 tucat kampány felett már érdemes lehet csekkolni őket ha sok az automatizációd vagy nagyon sűrűn küldesz leveleket vagy pl. 100 ezer havi emailnél többet), hogy még véletlenül se terheld túl a szervert a cron jobok összeakadásával, tehát, hogy egyszerre több példány nehogy fusson ugyanabból a parancsból (főleg ha a parancs nem fejeződik be magától ahogy a legtöbb parancs magától is befejeződik [ilyen "magától is örökké futó parancs" is van, és legalább 1 db ilyen a mautichoz is kell, lentebb írom!]). 

És arra is érdemes figyelni, hogy lehetőleg egyidőben az összes parancs közül is a lehető legkevesebb fusson, hogy ugye a tehermentesítéssel a szerver gyorsaságát tartsuk szinten és a szerver leterhelést kiegyensúlyozzuk az IDŐSÁVOK ELTOLÁSÁVAL, hogy ne okozzunk késéseket, vagy rosszabb esetben a nagy lassulással szerverlefagyásokat és így kritikus hibákat. Tehát nagyon nem szabad minden parancsot 5 csillaggal futtatni folyamatosan, mert az egy idő után (ahogy nő a mauticod) esélyesen kiakaszthatja a rendszert (akár már egy középvállalkozásnál is, vagy jobb esetben csak adatvesztést okoz), és ha csak simán leterheli akkor se jó ha pl. 10 másodpercnél többet késik bármi adatfeldolgozás, mert akkor pl. az admin felületed is 2-3 másodperc helyett lehet pl. 20-60 másodperc alatt fog csak betölteni. Tehát se tűl sűrűre se túl ritkára nem érdemes a cron jobokat tenni, mindig az igényeidnek és a szerver erőforrásainak megfelelően kell kiegyensúlyozni, hogy harmóniában legyen a leghatékonyabb, de nem kell aggódni, mert a mautic egy átlagos közepes VPS-el is simán elbír akár 1 millió ügyfelet is, tehát csak ha külföldi nagyvállalkozói szintet érsz el lehet elég lehet csak majd akkor ránézni újra a cron jobjaidra ha jól beállítottad őket (pl. ahogy én itt írom a copy pastékhoz ;D), HA közben azért néha nagyobb tárhely csomagra is váltasz (hogy elférjen az adatbázis) pl. nagyobb VPS csomagra a növekvő mautic igényei mentén (ha pl. már túl lassan tőltene be az admin menü).

Az igazi baj tehát nem az ha több különböző parancs fut párhuzamosan egyidőben (az max csak lassít), hanem ha ugyanazon parancs több példánya fut egyidőben (az már néha, ritkán de kritikus hibát is okozhat)!!

- Egy normális distributed (azaz decentralizált módon tipikusan szokásosan, elterjed módon) jól eloszlatott (pl. KVM-es virtualizációs, vagy kubernetes) CLOUD szerver vagy VPS esetén minél több (pl. virtuális) processzormagod van ( CPU vagy vCPU-d) annál inkább tudnak ezek a cron jobok jól futni párhuamosan is, tehát kezdőknek a legkisebb csomag is elég lehet, de azt is inkább VPS-en, viszont 5000 feliratkozótól már inkább 2 mag proci kell MINIMUM, meg 2-4 Giga ram ha nem csigabiga lassú admin felületet akarsz. De a több mindig jobb, viszont ha túl kevés akkor sem kéne hogy kritikus hibát okozzon (ha jó a szervered szerkezete) max csak nagyon lassú lesz minden (és csak ha kibírhatatlanul lassú pl. 1 perces admin felület töltés) akkor kell aggódnod csak hogy az már adatvesztést is okozhat vagy súlyos hibákat, eelvileg, ha mindent jól bekonfiguráltál. Tehát azon nem kell aggódnod ha pl. 5-10 gigás a teljes Mautic adatbázisod, de csak 4 giga ramod van és "nem fér bele", mert nem kell egyszerre férjen bele minden a memóriába, mert táblákra van szedve, de ha egy adatbázis táblád 5 giga és 4 giga ramodba nem fér bele annak se kell hibát okozzon mert valójában 1 táblából is csak soronként olvas!

- A kikapcsolod a gépet, lepauzálod a szervert vagy lefagy a rendszer vagy ilyesmi, akkor a kihagyott cron job időpontok nem kerülnek bepótlásra. A cron nem tartja számon a kihagyott időpontokat, tehát ha pl. túlterhelt = lefagyott a szerver 2 másodpercre az 59. másodpercben akkor is kihagyhat egy cron jobot, amit soha nem pótol, és ezért is érdemes pl. az éves nagytakarítást is inkább havira időzíteni ( ha pótolható vagy garantált futtatás kell akkor azokra is vannak megoldások, de a mautichoz fölösleges).

- A cron időzónája a szerver rendszerideje, tehát a szerver időzónáját is érdemes beállítani (csak privát szerver esetén kell: pl. a php.ini fileban, amiről szintén lesz külön cikk) és a Mautic beállításokban a Mautic időzónáját is érdemes ugyanarra beállítani, hogy könnyen átlátható, érthető, és hatékonyan alkalmazható legyen a Mauticod!

- A cron jobok környezete nem ugyanaz, mint terminálvan vagy SSH-ban!: pl. lehet más felhasználó futtatja, vagy nem jó neki a relatív útvonal csak az abszolút pl. shared hostingon, vagy mások a környezeti változók (pl. a debug, env=prod, stb.)! Tehát érdemes precíznek lenni, mert magyarán szólva, létezhet olyan, hogy SSH-ban jól fut valami de ugyanaz a cron jobokban már rosszul vagy sehogy. Ha ilyen van azt írom az adott parancsnál vagy paraéternél!



2. rész:
PHP
a php elérési útvonala pl.:
/usr/local/bin/php  --> Nálam ez volt shared hostingon, de ugye VPS-en sima php is elég

3. rész:
BIN/CONSOLE
azaz ide a teljes útvonalat érdemes írni ehelyére mindig a mauticod "console" nevű filejához pl.:
/home/teazonosítód/public_html/mautic-mappád/bin/console   --> Nálam ez volt shared hostingon

4. rész:
cache:clear
Ez maga a mautic parancs, ami helyére sok egyéb mautic parancsot is lehet írni, és ennek a résznek a paraméterei a legfontosabbak!


A fenti 4 rész utolsó 3 db részét a cache clear cikkben jobban kifejtem. A 4 részt egybeírva mindig kisbetükkel kell írni ( kivéve ha a mappaneveid közt van nagybetű is egy mappa nevében ). Itt a fenti példa lényegében azt csinálja, hogy percenként futtatja a PHP nevű webkiszolgáló programmal a Mautic-od "bin" nevű könyvtárban lévő "console" nevű fő Mauticos parancsfuttató filet és azzal meg futtatja az adott parancsot, pl. a "cache:clear"-t.

Nade milyen parancsok kellenek akkor pontosan milyen időzítésekkel és paraméterekkel?

Elöbb felsorolok pár példát és aztán megadom az összes Cron Jobot PONTOSAN a copy pastéhoz !

HOGYAN kell a Mautic CRON JOBS parancsokat beállítani + használni ?




A LEGFONTOSABB, azaz a KÖTELEZŐ 3 db Mautic cron jobok elcsúsztatott ( = staggered ) időzítéssel:

 

Ez 15 percenként  ( minden 5. , 20. , 35. , 50. percben ) megnézi újra, hogy ki tartozik melyik kampányba, vagy ki haladhat tovább a kampányeseményeken, s a hozzájuk tartozó kampány és szegmens logikákat csekkolja, de ez a parancs nem hajt végre kampányeseményeket (pl. nem küld e-mailt), csak előkészít, frissít, rendez:

5,20,35,50 * * * * php /home/MauticMappád/bin/console mautic:campaigns:update --batch-limit=1000 --no-interaction -vvv >> /home/MauticMappád/var/logs/cron-log/campaigns-update.log 2>&1

 

 

Ez 15 percenként  ( minden 10. , 25. , 40. , 55. percben ) végrehajtja a kampányeseményeket (pl. e-mail küldés [vagy queueba rakás queue esetén, s tudom nem ezt írja a ChatGPT se de téved és igen is ez pakol queue-ba is mautic 6-ban már], címkék hozzárendelése,  szegmensbe rakás, webhook küldés, contact törlés, feltétel ellenőrzés, stb.):

10,25,40,55 * * * * php /home/MauticMappád/bin/console mautic:campaigns:trigger --batch-limit=1000 --campaign-limit=1000 --no-interaction -vvv >> /home/MauticMappád/var/logs/cron-log/campaigns-trigger.log 2>&1

 

 

Ez 15 percenként  ( minden 0. , 15. , 30. , 45. percben )  frissíti a szegmenseket:

*/15 * * * * php /home/MauticMappád/bin/console mautic:segments:update --batch-limit=1000 --no-interaction -vvv >> /home/MauticMappád/var/logs/cron-log/segments-update.log 2>&1

Ez ugyanaz mint a mautic:segment:update .



Eme 3 parancsnál amúgy az --exclude paraméter nem azt csinálja amit a hivatalos dokumentáció szerint csinál, mert mindent kizár nem pedig csak azt ami 2x futna le a párhuzamos futás miatt.. tehát max konkrét ID megadásával lenne értelme mint pl. --exclude=2 ami így a 2. kampányt kizárja a futásból.

 




Létezik még ez is:
mautic:campaigns:rebuild DE ez NEM KELL cron jobokba!!
Hanem ezt CSAK MANUÁLISAN kell:
pl. hibák esetén vagy ha pl. valami "beragatt", vagy update, upgrade, plugin install, debug, vagy hasonlók esetén hasznos, mert hasonlít a mautic:campaigns:update -ra (és néhol keverik is, pl. a Chat GPT is rosszul írja) ezért van csak itt eme cikkben. Tehát eme parancs sokkal alaposabb és mindent újraépít (míg a többi cron job csak a szükségeseket, azaz csak az új, frissítendő elemeket). Tehát ez a campaigns:rebuild nem kell cron jobbal soha, csak manuálisan ha pl. rendszerfrissítést vagy hibakeresést végzel.

Ezek tehát a minimumok minimumjai, ami kell a cron jobokba, azaz csupán csak a nélkülözhetetlen legalapabb, legfontosabb cronjobok, de ezeken kívül is még van rengeteg erősen ajánlott, és opcionális is!

Tehát milyen cron jobok vannak még, és mik a megfelelő időzítések, paraméterek,  és hol elavult a legtöbb útmutató pl. amiknél még a chatGPT is rendszeresen téved?
Vagy azon cron jobok mik, amikről még hivatalos dokumentáció se rendesen frissített, meg amikről normális részletes cikkek a TELJES cron job listáról sincsenek még angolul se kb sehol a valóban összes fontos paraméterrel? Mert ugye mindenhol jó esetben is csak kb. a fele van meg max a cron job listának még a legteljesebb listákban is, vagy a paramétereknek, és a hivatalos dokumentáció is nagyon hiányos vagy elavult és még a mesterséges intelligenciák is egymásnak ellentmondó válaszokat adtak számtalanszor vagy alapból rosszat, nem működőt vagy elavultat még 2025-ben is, még több hétnyi alapos kérdezgetés után is... És egész egyszerűen még a fórumokon is elavult vagy hiányos csomó minden meg külföldi oldalakon is a Mauticról, és még a hivatalos dokumentációban is.. Tehát tudd meg PONTOSAN MILYEN CRON JOBOKAT KELL BEÁLLÍTANOD azaz COPY PASTÉZNOD még! Mert az előző 3 db-on felül:

+ Még legalább 20 db cron job van !



+ PONTOSAN milyen VÁLTOZATAIK és PARAMÉTEREIK és IDŐZÍTÉSEIK vannak ezeknek a parancsok és mikor melyiket hol és hogyan érdemes használni egy VPS-en, "shared hosting"-on mit kell másként, és mikben téved még a ChatGPT is, és mindezeken kívül mikre kell még figyelni ? A nagyon alapos gyakorlati tesztjeim alapján írt részletes útmutatóhoz tehát:

Jelentkezz be és láthatod a cikk folytatását INGYEN is!


Hiszen:

INGYEN bárkinek
látható eme cikk ennyi része:
INGYEN
láthatod bejelentkezés után:
A fizetős Mautic képzés része.
30%
20%
50%
* SÖTÉTZÖLD: Eme cikk kb. ennyi %-a látható bejelentkezés nélkül is INGYEN mindenkinek! Ezek az arányok képzésenként és cikkenként változnak!
* VILÁGOSZÖLD: Ezen cikk ennyi %-át már csak a bejelentkezett de örökké ingyenes tagság láthatja itt lentebb a világoszöld keretű részben.
* KÉKES-LILA: Konkrétan eme cikk kb. ennyi %-át ( = a haladó részét ) csak a fizetős Mautic képzést megvásárlók láthatják itt legalul a lila keretű részben.
Megosztás: