Oba izraza sta videti kot sredino jutro, in samo eden od njiju pomeni enkrat. 0 10 * * 3 se sproži ob 10:00 v sredo; * 10 * * 3 se sproži vsako minuto desete ure, šestdeset priložnosti za zagon istega tunela. Če je ukaz zaganjalnik, ki ne preveri obstoječe seje, druga različica ni napaka pri razporejanju, ampak zanka, ki ustvarja konkurenčne lastnike. Preberite polje minut, preden preberete karkoli drugega.

Pet polj so minuta, ura, dan v mesecu, mesec in dan v tednu, v tem vrstnem redu, zvezdica v prvem pa pomeni vsako minuto.

Polje minut odloča, kolikokrat

Vodilno število je minuta, zato je 0 10 * * 3 prva minuta desete ure v sredo. Zamenjava z zvezdico ohrani uro in dan ter odvzame lastnost samo-enkrat, kar ustvari šestdeset ujemanj. Cron ne odstranjuje dvojnikov: vsako ujemanje znova zažene ukaz. To ni podrobnost o cronu, to je semantika polj, in referenco nameščenega razporejevalnika je vredno prebrati, ker se vrstni red polj in neobvezni stolpec uporabniškega imena razlikujeta med uporabniškim in sistemskim crontabom.

Preizkusite z neškodljivim ukazom, ki si ves dan zapisuje lasten časovni žig. Ena vrstica v dnevniku je razpored; šestdeset vrstic v eni uri je lekcija.

Kaj drugi zagon stori prvemu

Dobro vzgojen zaganjalnik opazi, da je povezava že vzpostavljena, in ne stori ničesar. Surov klic openvpn ne: ustvari drug proces, še en poskus vezave naprave ali vrat, in še en nabor poti, ki tekmujejo za iste cilje. V NetworkManagerju so ponovljene zahteve za aktivacijo ene povezave običajno idempotentne, in prav zato težava ostane skrita, dokler nekdo ne uporabi drugega ukaza. Razpored bi moral vprašati lastnika, ki tunel že upravlja.

Nato odločite, kaj zahteva pomeni, medtem ko se povezava vzpostavlja. Niti dvojna aktivacija niti čakalna vrsta čakajočih zagonov nista očitno pravilna; izberite eno in pustite zaganjalniku, da to izvede, namesto da bi razporejevalnik odločal po naključju.

Preštejte polja pred ukazom

Uporabniški in sistemski crontab se razlikujeta po tem, ali se pred ukazom pojavi stolpec z uporabniškim imenom. Vnos, kopiran med njima, se izvaja pod napačnim računom ali pa posreduje uporabniško ime kot prvo besedo ukaza. Preverite nameščeno referenco, ne vodnika, in preštejte polja v svoji vrstici. Vnos s petimi polji in šesto besedo pred ukazom je sistemski crontab; ista vrstica v uporabniškem crontabu poskuša tisto besedo izvesti kot program.

Identiteta izvajanja s seboj nosi okolje. Opravilo cron ne podeduje odklenjenega obroča ključev, interaktivnega poziva za geslo ali delovnega imenika, v katerem ste testirali.

Počakajte na pripravljenost, ne na uro

Uspešen zagon še ni delujoč tunel. Odjemalec morda ob koncu opravila še vedno razrešuje svojo končno točko, se preverja ali namešča poti. Vsako odvisno opravilo bi moralo počakati na zaščiteni vir, ki ga resnično potrebuje, z omejenim časom in zabeleženo napako, namesto na fiksno število sekund. Ta razlika loči razpored, ki večinoma deluje, od tistega, ki v natrpanem jutru tiho odpove.

Če je ob tej uri potrebna interaktivna MFA, lahko opravilo zaprosi za pozornost osebe, ne more pa zagotoviti odgovora. Ta primer ohranite ekspliciten, namesto da bi vgradili geslo za večkratno uporabo ali poskušali v nedogled.

Za resnično enkratno aktivacijo uporabite podprt enkratni mehanizem. Ponavljajoče pravilo, ki si ga je treba zapomniti in odstraniti, je prihodnji dvojni zagon.

Sorodni članki