Cron-lausekkeiden jäsennin
Parseeraa cron-ilmaisuja ja katso ihmiselle luettavissa oleva selitys siitä, milloin ne suoritetaan. Täydellinen kehittäjille ja järjestelmänvalvojille, joiden on luotava tai ymmärrettävä cron-työn aikatauluja. Vältä ajoitusvirheitä visualisoimalla tarkalleen, milloin cron-lausekkeet suoritetaan.
Usein kysytyt kysymykset
Mikä on cron-lauseke?
cron-lauseke on 5 tai 6 kentän merkkijono, joka määrittää automatisoitujen tehtävien aikataulun Unix-tyyppisissä järjestelmissä. Kentät tarkoittavat minuuttia (0-59), tuntia (0-23), kuukauden päivää (1-31), kuukautta (1-12) ja viikonpäivää (0-7, jossa 0 ja 7 tarkoittavat sunnuntaita). Esimerkiksi '0 9 * * 1' tarkoittaa 'suorita joka maanantai klo 9.00'.
Miten luon cron-lausekkeen tiettyä aikataulua varten?
Aloita viidellä tähdellä (* * * * * * *), jotka edustavat minuuttia, tuntia, päivää, kuukautta ja viikonpäivää. Korvaa tähdet tietyillä arvoilla tai alueilla. Esimerkiksi: "30 14 * * * *" toimii päivittäin klo 14:30, "0 0 1 * * *" toimii keskiyöllä kunkin kuukauden 1. päivänä, "*/15 * * * * *" toimii 15 minuutin välein. Käytä jäsentäjääsi varmistaaksesi, että lausekkeesi tekee sen, mitä odotat.
Mitä tähti (*) tarkoittaa cronissa?
Tähti tarkoittaa "joka" tai "mikä tahansa" kyseisessä aikayksikössä. Esimerkiksi * tuntikentässä tarkoittaa jokaista tuntia, * päiväkentässä jokaista päivää. Joten "0 * * * * *" tarkoittaa "jokaisen tunnin minuutilla 0" (tunnin välein), kun taas "* * * * * *" tarkoittaa "joka minuutti". Se on jokerimerkki, joka vastaa kaikkia kentän mahdollisia arvoja.
Miten voin suorittaa cron-työn 5 minuutin välein tai N tunnin välein?
Käytä askelarvon syntaksia: */N. 5 minuutin välein: '*/5 * * * *'. 3 tunnin välein: '0 */3 * * *'. */N-syntaksi tarkoittaa 'joka N:nnen arvon' - joten */5 minuutti-kentässä tarkoittaa minuutteja 0, 5, 10, 15 jne. Voit myös käyttää vaihteluvälejä, joissa on askelia, kuten '0-30/5' joka 5 minuutin välein ensimmäisen puolen tunnin aikana.
Voinko suorittaa cron-tehtävän vain arkisin?
Kyllä! Käytä 1-5 viikonpäiväkentässä (5. kenttä). Esimerkiksi "0 9 * * * 1-5" toimii maanantaista perjantaihin kello 9 aamulla. Maanantai on 1 ja perjantai on 5. Voit myös luetella tietyt päivät: "0 9 * * * 1,3,5" toimii klo 9.00 vain maanantaina, keskiviikkona ja perjantaina.
Mitä eroa on kuukauden päivän ja viikonpäivän välillä?
Nämä ovat kaksi eri tapaa määrittää, minä päivinä työ suoritetaan. Kuukauden päivä (3. kenttä) käyttää päivämääriä 1-31, kun taas viikonpäivä (5. kenttä) käyttää 0-7 (0 ja 7 ovat sunnuntai). Jos molemmat on määritetty (ei *), työ suoritetaan, kun jompikumpi ehto täsmää. Esimerkiksi '0 0 1 * 1' suoritetaan keskiyöllä joka kuukauden 1. päivänä JA joka maanantai.
Miten luon cron-ilmaisun vain työaikaa varten?
Arkipäivisin klo 9-17: "0 9-17 * * * 1-5" käynnistyy kunkin tunnin alussa. Työaikana 30 minuutin välein: '*/30 9-17 * * 1-5'. Tuntialue 9-17 kattaa kello 9.00-17.00, ja 1-5 rajoittaa suorituksen maanantaista perjantaihin.
Mitä eroa on '0 0 * * * *' ja '@daily' välillä?
Ne vastaavat toisiaan - molemmat kulkevat keskiyöllä päivittäin. Monet cron-toteutukset tukevat erikoismerkkijonoja, kuten @daily, @hourly, @weekly, @monthly ja @yearly, oikoteitä. Nämä ovat luettavampia mutta vähemmän joustavia kuin täydelliset lausekkeet. Käytä oikoteitä tavallisiin aikaväleihin ja täydellisiä lausekkeita mukautettuihin aikatauluihin.
Voivatko cron-ilmaukset käsitellä aikavyöhyke-eroja?
Tavalliset cron-ilmaisut suoritetaan palvelimen järjestelmäajan perusteella. Jos haluat käsitellä aikavyöhykkeitä, aseta palvelimen aikavyöhyke oikein tai laske aikaero. Jotkin edistyneet cron-toteutukset tukevat aikavyöhykemäärityksiä, mutta 5-kenttäinen perusmuoto ei sisällä aikavyöhyketietoja.
Miten voin testata, onko cron-lausekkeeni oikea ennen käyttöönottoa?
Käytä Cron-lausekkeen jäsentäjääsi varmistaaksesi, että lausekkeesi näyttää odotetun aikataulun kuvauksen. Parser selittää selkokielellä, milloin työsi suoritetaan, ja auttaa sinua havaitsemaan virheet, kuten '0 9 31 2 *' (helmikuun 31. päivää ei ole olemassa), ennen tuotantoon käyttöönottoa.