0 10 * * 3 eller * 10 * * 3? Les minuttfeltet
0 10 * * 3 blir utløyst éin gong; * 10 * * 3 blir utløyst seksti gonger på ein time. Les minuttfeltet, kontroller feltrekkjefølgja og vent deretter på beredskap i staden for på klokka.
Båe uttrykka ser ut som ein onsdag morgon, og berre eitt av dei tyder éin gong. 0 10 * * 3 blir utløyst klokka 10:00 på onsdag; * 10 * * 3 blir utløyst i kvart minutt av den tiande timen, seksti sjansar til å starta den same tunnelen. Viss kommandoen er ein startar som ikkje sjekkar om det finst ei økt, er den andre versjonen ikkje ein planleggingsfeil, det er ei løkke som skapar konkurrerande eigarar. Les minuttfeltet før du les noko anna.
Dei fem felta er minutt, time, dag i månaden, månad og vekedag, i den rekkjefølgja, og ei stjerne i det første tyder kvart minutt.
Minuttfeltet avgjer kor mange gonger
Det leiande talet er minuttet, så 0 10 * * 3 er det første minuttet i den tiande timen på onsdag. Å byta det ut med ei stjerne held på timen og dagen og fjernar eigenskapen berre-éin-gong, noko som gjev seksti treff. Cron fjernar ikkje duplikat: kvart treff startar kommandoen på nytt. Det er inga finesse ved cron, det er feltsemantikk, og referansen til den installerte planleggjaren er verdt å lesa, fordi feltrekkjefølgja og den valfrie brukarnamnkollonna er ulike i brukar- og systemcrontab.
Test med ein ufarleg kommando som registrerer sin eigen tidsstempel i eitt døgn. Éi linje i loggen er ein plan; seksti linjer innan ein time er ei lekse.
Kva ein andre start gjer med den første
Ein veloppdratt startar merkar at sambandet alt er oppe og gjer ingenting. Eit rått openvpn-kall gjer ikkje det: det opprettar ein ny prosess, eit nytt forsøk på å binda ei eining eller ein port, og eit nytt sett ruter som konkurrerer om dei same destinasjonane. I NetworkManager er gjentekne aktiveringsførespurnader for éin samband vanlegvis idempotente, og det er nettopp difor problemet held seg skjult til nokon brukar ein annan kommando. Planen bør spørja eigaren som alt administrerer tunnelen.
Avgjer deretter kva ein førespurnad tyder medan sambandet blir oppretta. Korkje dobbelaktivering eller ein kø av ventande startar er openbert rett; vel éin og lat startaren implementera det, i staden for å lata planleggjaren avgjera ved eit uhell.
Tel felta før kommandoen
Brukar- og systemcrontab er ulike i om det står ein brukarnamnkollonne før kommandoen. Ei oppføring som blir kopiert mellom dei, køyrer anten under feil konto eller sender brukarnamnet som første ord i kommandoen. Sjekk den installerte referansen i staden for ein rettleiar, og tel felta i di eiga linje. Ei oppføring med fem felt og eit sjette ord før kommandoen er ein systemcrontab; den same linja i ein brukarcrontab prøver å køyra det ordet som eit program.
Utføringsidentiteten ber miljøet med seg. Ein cron-jobb arvar ikkje ein opplåst nøkkelring, ein interaktiv passordførespurnad eller arbeidskatalogen du testa i.
Vent på beredskap, ikkje på klokka
Ein vellukka start er ikkje ein fungerande tunnel. Klienten kan framleis løysa opp endepunktet sitt, autentisera eller installera ruter når jobben er ferdig. Kvar avhengig oppgåve bør venta på den verna ressursen ho faktisk treng, med ei avgrensa tidsgrense og ein logga feil, i staden for eit fast tal sekund. Den skilnaden skil ein plan som stort sett verkar frå ein som feilar stille den travle morgonen.
Viss interaktiv MFA er påkravd på den timen, kan jobben be om ei persons merksemd, men ikkje levera svaret. Hald det tilfellet eksplisitt i staden for å byggja inn eit gjenbrukbart passord eller prøva på nytt i det uendelege.
For ein verkeleg eingongsaktivering, bruk den støtta eingongsmekanismen. Ein tilbakevendande regel som må hugsast og fjernast, er ein framtidig dobbel start.