„Cron“ išraiškos komponentų analizė
„Cron“ išraiška yra standartizuotas penkių laukų tekstinis formatas, naudojamas periodinėms užduotims operacinėse sistemose ir fono procesų planuokliuose aprašyti. Kiekvienas laukas atsako už konkretų laiko intervalą, o jų seka visada išlieka tokia pati: minutė, valanda, mėnesio diena, mėnuo ir savaitės diena. Šis įrankis išskaido įvestą eilutę į atskirus komponentus ir pateikia aiškią kiekvieno lauko reikšmę.
Sėkmingai išanalizavus išraišką, skiltyje „Tvarkaraščio analizė“ pateikiami šie laukai:
- Minutė: nurodo konkrečias minutes arba intervalus, kada užduotis turi būti paleista.
- Valanda: nurodo paros valandas.
- Mėnesio diena: nurodo konkrečias mėnesio dienas nuo 1 iki 31.
- Mėnuo: nurodo mėnesius, kada tvarkaraštis yra aktyvus.
- Savaitės diena: nurodo savaitės dienas, kada vykdoma užduotis.
Jei lauke naudojamas simbolis *, analizatorius jį išvers kaip „Bet kuri“. Jei naudojama žingsnio sintaksė */n, įrankis sugeneruoja atitinkamus aprašymus: „Kas {n} min.“, „Kas {n} val.“, „Kas {n} d.“, „Kas {n} mėn.“ arba „Kas {n} d.“.
Palaikoma sintaksė ir specialieji simboliai
Šis analizatorius palaiko standartinę 5 laukų „cron“ sintaksę ir dažniausiai naudojamus operatorius, leidžiančius lanksčiai konfigūruoti tvarkaraščius:
- Rėžiai (brūkšnelis): leidžia nurodyti vientisą diapazoną, pavyzdžiui,
1-5. - Žingsniai (pasvirasis brūkšnys): nurodo pasikartojimo intervalą, pavyzdžiui,
*/15. - Sąrašai (kaubliukas): leidžia išvardyti kelias konkrečias reikšmes, pavyzdžiui,
1,15. - Tekstiniai pavadinimai: mėnesiams ir savaitės dienoms galima naudoti trijų raidžių trumpinius, pavyzdžiui,
JANarbaMON. - Sisteminiai trumpiniai: įrankis atpažįsta standartinius trumpinius, kurie pakeičia visą 5 laukų išraišką:
@yearly,@monthly,@weekly,@dailyir@hourly.
Pavyzdinė įvestis, demonstruojanti šių taisyklių derinimą, yra */15 9-17 * * MON-FRI. Svarbu atkreipti dėmesį, kad šis įrankis nepalaiko šeštojo sekundžių lauko bei specifinių „Quartz“ išplėtimų, tokių kaip L, W arba #.
Sąveika tarp mėnesio dienos ir savaitės dienos laukų
Viena svarbiausių standartinės „cron“ sintaksės taisyklių yra susijusi su mėnesio dienos ir savaitės dienos laukų sąveika. Kai abu šie laukai yra apriboti (tai yra, nė viename iš jų nenaudojamas simbolis *), užduoties vykdymo logika veikia pagal „ARBA“ principą.
Tai reiškia, kad užduotis bus įvykdyta tada, kai atitinka bent viena iš šių sąlygų – arba sutampa nurodyta mėnesio diena, arba nurodyta savaitės diena. Jos neprivalo sutapti tą pačią dieną. Šis elgesys dažnai sukelia neaiškumų pradedantiesiems administratoriams, todėl vizualus būsimų vykdymo laikų patikrinimas padeda išvengti planavimo klaidų prieš perkeliant konfigūraciją į gamybinę aplinką.
Neįmanomų tvarkaraščių aptikimas
Nors „cron“ išraiška gali būti sintaksiškai teisinga, ji gali aprašyti logiškai neįmanomą situaciją. Jei įvestas tvarkaraštis niekada negalės įvykti, įrankis pateiks pranešimą: „Šis tvarkaraštis niekada negali įvykti – patikrinkite, ar nepasirinkote mėnesio dienos, kuri neegzistuoja visuose pasirinktuose mėnesiuose.“.
Ši klaida dažniausiai pasitaiko, kai mėnesio dienos lauke nurodoma 31 diena, tačiau mėnesių lauke yra įtraukti trumpesni mėnesiai, pavyzdžiui, balandis, birželis, rugsėjis arba lapkritis. Kadangi šie mėnesiai turi tik 30 dienų (arba vasaris – 28/29 dienas), bendras tvarkaraščio filtras tampa neįgyvendinamas, jei reikalaujama, kad taisyklė galiotų visiems pasirinktiems mėnesiams.
Vietinė laiko juosta ir būsimų vykdymo laikų skaičiavimas
Standartinėje „cron“ išraiškoje nėra jokios informacijos apie laiko juostą. Užduoties vykdymo laiką nustato pati sistema arba serveris, kuriame veikia planuoklis.
Šis analizatorius apskaičiuoja būsimus vykdymo laikus ir juos atvaizduoja jūsų naršyklės vietine laiko juosta. Prie rezultatų pateikiama pastaba „(jūsų vietinis laikas)“. Naudotojai gali koreguoti rodomų rezultatų skaičių laukelyje „Kiekis“, pasirinkdami reikšmę nuo 1 iki 20. Tai leidžia greitai įvertinti, kaip tvarkaraštis koreliuoja su jūsų vietiniu laiku, tačiau svarbu atsižvelgti į tai, kad serverio, kuriame bus vykdoma užduotis, laiko juosta gali skirtis.
Duomenų apdorojimas ir privatumas naršyklėje
Naudojantis šiuo įrankiu, jūsų įvestos „cron“ išraiškos išlieka visiškai privačios. Visas analizės procesas ir būsimų vykdymo laikų skaičiavimas vyksta tiesiogiai jūsų interneto naršyklėje.
Jokie įvesti duomenys, tvarkaraščiai ar parametrai nėra siunčiami į „BroBroGo“ serverius. Tai užtikrina greitą veikimą ir leidžia saugiai tikrinti vidinių sistemų konfigūracijas tiesiai savo darbo vietoje. Jei įvesties laukas išvalomas, įrankis grįžta į pradinę būseną ir rodo pranešimą „Įveskite „cron“ išraišką, kad ją išanalizuotumėte.“.
Dažniausiai užduodami klausimai (FAQ)
Kokią „cron“ sintaksę palaiko šis įrankis?
Standartinė 5 laukų „cron“ sintaksė – minutė, valanda, mėnesio diena, mėnuo ir savaitės diena – įskaitant rėžius (1-5), žingsnius (*/15), sąrašus (1,15), tekstinius mėnesių bei savaitės dienų pavadinimus (JAN, MON) ir trumpinius @yearly/@monthly/@weekly/@daily/@hourly. Viena lengvai praleidžiama taisyklė: kai ribojama ir mėnesio diena, ir savaitės diena (nėra *), pakanka, kad atitiktų bent viena iš jų – jos neprivalo sutapti.
Kokia laiko juosta rodomi būsimi vykdymo laikai?
Jūsų naršyklės vietinę laiko juostą – tą pačią, kurią naudoja jūsų sistemos laikrodis. Standartinė „cron“ išraiška savyje neturi laiko juostos informacijos; ją nustato užduočių planuoklis, kuriame ji veikia, todėl šiuos laikus vertinkite kaip savo vietinio tvarkaraščio peržiūrą, o ne būtinai serverio laiko juostą.
Kodėl rašoma, kad šis tvarkaraštis niekada negali įvykti?
Dažniausiai taip nutinka dėl mėnesio dienos reikšmės, kuri neegzistuoja visuose pasirinktuose mėnesiuose – pavyzdžiui, 31 diena, kai mėnesio lauke nurodytas balandis, birželis, rugsėjis arba lapkritis. Pasirinkite dieną, kuri egzistuoja visuose išvardytuose mėnesiuose, arba padalykite tvarkaraštį į atskiras išraiškas.
Ar mano įvestos „cron“ išraiškos yra kur nors saugomos?
Ne. Jūsų „cron“ išraiška analizuojama jūsų naršyklėje. Nieko nesiunčiama į „BroBroGo“, todėl visas apdorojimas vyksta lokaliai jūsų įrenginyje.