Begge udtryk ligner en onsdag morgen, og kun det ene betyder én gang. 0 10 * * 3 udløses klokken 10:00 om onsdagen; * 10 * * 3 udløses i hvert minut af det tiende time, tres chancer for at starte den samme tunnel. Hvis kommandoen er en starter, der ikke kontrollerer for en eksisterende session, er den anden version ikke en planlægningsfejl, det er en løkke, der skaber konkurrerende ejere. Læs minutfeltet, før du læser noget andet.

De fem felter er minut, time, dag i måneden, måned og ugedag, i den rækkefølge, og en stjerne i det første betyder hvert minut.

Minutfeltet afgør hvor mange gange

Det førende tal er minuttet, så 0 10 * * 3 er det første minut af det tiende time om onsdagen. Erstatter man det med en stjerne, bevares time og dag, og egenskaben kun-én-gang forsvinder, hvilket giver tres match. Cron fjerner ikke dubletter: hvert match starter kommandoen igen. Det er ikke en fin detalje om cron, det er feltsemantik, og det er værd at læse den installerede planlægnings reference, fordi feltordenen og den valgfrie brugernavnkolonne er forskellig i bruger- og systemcrontab.

Test med en uskadelig kommando, der registrerer sit eget tidsstempel i et døgn. Én linje i loggen er en plan; tres linjer inden for en time er en lektie.

Hvad en anden start gør ved den første

En velopdragen starter bemærker, at forbindelsen allerede er oppe, og gør ingenting. Et råt openvpn-kald gør ikke: det opretter endnu en proces, endnu et forsøg på at binde en enhed eller en port, og endnu et sæt ruter, der konkurrerer om de samme destinationer. I NetworkManager er gentagne aktiveringsanmodninger for én forbindelse normalt idempotente, og det er netop derfor, problemet forbliver skjult, indtil nogen bruger en anden kommando. Planen bør spørge den ejer, der allerede administrerer tunnelen.

Beslut derefter, hvad en anmodning betyder, mens forbindelsen er ved at blive oprettet. Hverken dobbeltaktivering eller en kø af ventende starter er indlysende korrekt; vælg én, og lad starteren implementere det, i stedet for at lade planlæggeren beslutte det ved et tilfælde.

Tæl felterne før kommandoen

Bruger- og systemcrontab adskiller sig med hensyn til, om der står en brugernavnkolonne før kommandoen. En post, der kopieres mellem dem, kører enten under den forkerte konto eller sender brugernavnet som kommandoens første ord. Kontroller den installerede reference i stedet for en guide, og tæl felterne i din egen linje. En post med fem felter og et sjette ord før kommandoen er en systemcrontab; den samme linje i en brugercrontab forsøger at køre det ord som et program.

Eksekveringsidentiteten bærer miljøet med sig. Et cron-job arver ikke en oplåst nøglering, en interaktiv adgangskodeanmodning eller den arbejdsmappe, du testede i.

Vent på parathed, ikke på uret

En vellykket start er ikke en fungerende tunnel. Klienten kan stadig være ved at opløse sit endepunkt, godkende eller installere ruter, når jobbet afsluttes. Enhver afhængig opgave bør vente på den beskyttede ressource, den faktisk har brug for, med en begrænset timeout og en logget fejl i stedet for et fast antal sekunder. Den forskel adskiller en plan, der for det meste virker, fra en der fejler lydløst på den travle morgen.

Hvis der kræves interaktiv MFA på det tidspunkt, kan jobbet tilkalde en persons opmærksomhed, men ikke levere svaret. Hold det tilfælde eksplicit i stedet for at indlejre en genbrugelig adgangskode eller prøve igen i det uendelige.

Til en reelt engangsaktivering skal du bruge den understøttede engangsmekanisme. En tilbagevendende regel, der skal huskes og fjernes, er en fremtidig dobbeltstart.

Relaterede artikler