0 10 * * 3 vai * 10 * * 3? Lue minuuttikenttä
0 10 * * 3 laukeaa kerran; * 10 * * 3 laukeaa kuusikymmentä kertaa tunnissa. Lue minuuttikenttä, tarkista kenttien järjestys ja odota sitten valmiutta kellon sijaan.
Molemmat lausekkeet näyttävät keskiviikkoaamulta, ja vain toinen niistä tarkoittaa kerran. 0 10 * * 3 laukeaa keskiviikkona kello 10:00; * 10 * * 3 laukeaa kymmenennen tunnin joka minuutilla, kuusikymmentä mahdollisuutta käynnistää sama tunneli. Jos komento on käynnistin, joka ei tarkista olemassa olevaa istuntoa, toinen versio ei ole ajoitusvirhe, vaan silmukka, joka tuottaa kilpailevia omistajia. Lue minuuttikenttä ennen kuin luet mitään muuta.
Viisi kenttää ovat minuutti, tunti, kuukauden päivä, kuukausi ja viikonpäivä tässä järjestyksessä, ja tähti ensimmäisessä tarkoittaa joka minuuttia.
Minuuttikenttä päättää, kuinka monta kertaa
Johtava luku on minuutti, joten 0 10 * * 3 on keskiviikon kymmenennen tunnin ensimmäinen minuutti. Tähdellä korvaaminen säilyttää tunnin ja päivän ja pudottaa vain-kerran-ominaisuuden, mikä tuottaa kuusikymmentä osumaa. Cron ei poista kaksoiskappaleita: jokainen osuma käynnistää komennon uudelleen. Tämä ei ole cronin hienous, vaan kenttien semantiikkaa, ja asennetun ajastimen viite kannattaa lukea, koska kenttien järjestys ja valinnainen käyttäjänimisarake eroavat käyttäjän ja järjestelmän crontabin välillä.
Testaa harmittomalla komennolla, joka tallentaa oman aikaleimansa päivän ajan. Yksi rivi lokissa on aikataulu; kuusikymmentä riviä tunnissa on opetus.
Mikä toisen käynnistyksen vaikutus on ensimmäiseen
Hyvin kasvatettu käynnistin huomaa, että yhteys on jo pystyssä, eikä tee mitään. Raaka openvpn-kutsu ei: se luo uuden prosessin, uuden yrityksen sitoa laite tai portti, ja uuden reittijoukon, joka kilpailee samoista kohteista. NetworkManagerissa yhden yhteyden toistuvat aktivointipyynnöt ovat yleensä idempotentteja, ja juuri siksi ongelma pysyy piilossa, kunnes joku käyttää toista komentoa. Aikataulun pitäisi kysyä omistajalta, joka jo hallitsee tunnelia.
Päätä sitten, mitä pyyntö tarkoittaa, kun yhteys on muodostumassa. Kumpikaan vaihtoehto, ei kaksoisaktivointi eikä odottavien käynnistysten jono, ole ilmeisen oikein; valitse yksi ja anna käynnistimen toteuttaa se sen sijaan, että ajastin päättää vahingossa.
Laske kentät ennen komentoa
Käyttäjän ja järjestelmän crontab eroavat siinä, onko komennon edessä käyttäjänimisarake. Niiden välillä kopioitu merkintä joko ajetaan väärällä tilillä tai välittää käyttäjänimen komennon ensimmäisenä sanana. Tarkista asennettu viite ohjeen sijaan ja laske kentät omalta riviltäsi. Viiden kentän merkintä, jonka edessä on kuudes sana, on järjestelmän crontab; sama rivi käyttäjän crontabissa yrittää suorittaa tuon sanan ohjelmana.
Suoritusidentiteetti kantaa ympäristön mukanaan. Cron-työ ei peri avattua avainnippua, interaktiivista salasanakehotetta tai työhakemistoa, jossa testasit.
Odota valmiutta, älä kelloa
Onnistunut käynnistys ei ole toimiva tunneli. Asiakasohjelma saattaa vielä selvittää päätepistettään, todentaa tai asentaa reittejä, kun työ jo päättyy. Minkä tahansa riippuvan tehtävän pitäisi odottaa suojattua resurssia, jota se todella tarvitsee, rajoitetulla aikakatkaisulla ja kirjatulla epäonnistumisella, kiinteän sekuntimäärän sijaan. Tämä ero erottaa aikataulun, joka pääosin toimii, siitä, joka epäonnistuu hiljaa kiireisenä aamuna.
Jos sinä tuntina vaaditaan interaktiivista MFA:ta, työ voi pyytää ihmisen huomiota mutta ei voi antaa vastausta. Pidä tämä tapaus eksplisiittisenä sen sijaan, että upottaisit uudelleenkäytettävän salasanan tai yrittäisit ikuisesti uudelleen.
Todella kertaluontoiseen aktivointiin käytä tuettua kertakäyttömekanismia. Toistuva sääntö, joka täytyy muistaa ja poistaa, on tuleva kaksoiskäynnistys.