Crontab Manual - Tehtävien ajoitus Linuxissa

Samojen tehtävien uudelleen ja uudelleen suorittaminen, joko päivittäin, viikoittain tai kuukausittain, on tehtävä, joka ajan myötä väsyy ja rappeutuu, riippuen sen monimutkaisuudesta, jolloin jätämme sen sivuun. Ratkaisu tähän ongelmaan on automatisoida se mahdollisimman paljon. Ihan kuin Windows mahdollistaa tiettyjen tehtävien automatisoinnin, Linux tarjoaa meille myös tämän vaihtoehdon Crontabin kautta, mutta ei yksinomaan.

Jos haluamme automatisoida Linuxin toiminnan, olipa kyseessä sitten varmuuskopiointi, raporttien luominen, konfiguraatioiden muokkaaminen tai jotain muuta, ratkaisu on käyttää Crontabia yhdessä Cronin kanssa, koska toisin kuin Windows, tarvitsemme kaksi sovelluksia minimiin.

Crontab käsikirja

Mikä Crontab on?

Crontab on tekstitiedosto, jossa automaatioita luodaan parametrisarjan perusteella, tekstitiedosto lukenut Cron . Molemmat sovellukset ovat saatavilla natiivisti useimmissa yleisimmissä Linux-jakeluissa, joten niiden käyttäminen ei edellytä arkiston asentamista tietokoneellemme.

Crontab tarjoaa meille sarjan skriptejä, yksi riviä kohden, joiden avulla voimme mukauttaa tarkan ajan, jonka haluamme yhden tai useamman tehtävän suorittamiseen ja niiden toistot ajan myötä. Itse asiassa sen nimi tulee kreikan sanasta Cronos , mikä tarkoittaa aikaa. Jokainen komentosarja sisältää tiedot tarkasta päivämäärästä, jolloin se tulee suorittaa, mikä päivämäärä on merkitty numerosarjalla. Esimerkkinä painike. Seuraava komentosarja suoritetaan nfsfindissä joka sunnuntai kello 5:30 aamulla

30 5 * * 0 /usr/lib/fs/nfs/nfsfind

Kaksi ensimmäistä numeroa edustavat tuntia, jolloin komento suoritetaan, ensimmäinen numero on minuutti ja toinen tunnit. Crontabin käyttämä aikamuoto on 24 tuntia, joten jos haluamme suorittaa tehtävän kello 5 iltapäivällä, tämä olisi numero 17. Tähdet edustavat kaikkia arvoja, kun taas numero 0 vastaa sunnuntaita.

Älä sekoita Cronia Crontabiin

Vaikka Crontab antaa meille mahdollisuuden suorittaa järjestelmämme Automations , ne suoritetaan, vaikkakaan ei yksinomaan, Cron-sovelluksella, joka on taustalla toimiva sovellus, joka suorittaa kaikki aiemmin Crontabissa määrittämämme tehtävät. Tämä sovellus käyttää järjestelmäaikaamme niiden suorittamiseen, joten virtuaalikonetta käytettäessä on tärkeää, että sekä vieraskoneen että tietokoneemme aika ovat aina samat, koska muuten ohjelmoitu aika ei ole oikea.

Cron lukee Crontab-tiedoston sisällön joka minuutti, joten voimme muokata sitä milloin tahansa suorittamaan tehtäviä, jotka haluamme suorittaa samassa istunnossa ilman, että sovellus pakotetaan lukemaan sisältöä uudelleen löytääkseen uusia suoritettavia komentosarjoja.

Kaikilla käyttäjillä ei ole mahdollisuutta luoda Crontab-tiedostoja järjestelmätehtävien automatisoimiseksi. Järjestelmänvalvojalla on mahdollisuus sallia tai kieltää tämä vaihtoehto tiedoston cron.allow tai cron.den kautta. Tiedostot löytyvät hakemistosta /etc/cron.do /etc/ riippuen Linux-jakelun versiosta. asennettu tietokoneellemme.

Kuinka automatisoida tehtäviä Linuxissa

Kuten olemme edellä maininneet, Crontab-skriptit alkavat päivämäärällä, jonka haluamme niiden suorittavan, ja sen jälkeen komennon. Crontab-syntaksi on seuraava.

Aikataulun hallinta

minuto hora día-del-mes mes día-de-la-semana ruta-comandos

  • Minuutti, tämä voi olla 0 - 59
  • Aika, kuten olemme maininneet, Crontab käyttää 24 tunnin aikaa, joten lukualue on 0 - 23.
  • Kuukauden päivä, tässä parametrissa ei ole paljon mysteeriä, koska se vaihtelee 1:stä 31:een.
  • Kuukausi, 1-12
    • tammikuu 1
    • helmikuu 2
    • maaliskuu 3
    • huhtikuu 4
    • voi 5
    • kesäkuu 6
    • heinäkuu 7
    • elokuu 8
    • syyskuu 9
    • lokakuu 10
    • marraskuu 11
    • Joulukuu 12.
  • Viikonpäivä 0-6, sunnuntai on numero 0, vaikka joissakin Crontab-versioissa voidaan käyttää myös numeroa 7. Tällä tavalla viikonpäivien koodi on
    • 0 sunnuntaina
    • 1 maanantai
    • 2 tiistai
    • 3 keskiviikko
    • 4 torstai
    • 5 perjantai
    • 6 lauantai

Mutta lisäksi voimme myös käyttää tähteä (*) määrittääksesi kaikki muuttujan mahdolliset arvot. Jos haluamme määrittää useita arvoja, voimme tehdä sen pilkulla (,) tai arvoalueella erottamalla ne yhdysviivalla (-). Voimme myös asettaa eri vaiheita "/"-merkillä.

Jos se ei vieläkään ole kovin selkeä, näytämme sinulle aikakoodit, joita voimme käyttää tehtävien suorittamiseen säännöllisin väliajoin riippuen.

  • 0 * * * * Aikakoodia käyttämällä skripti suoritetaan tunnin välein.
  • 0 0 * * * Joka päivä komentosarja suoritetaan vain kerran
  • 0 0 * * 0 Skripti suoritetaan kerran viikossa
  • 0 0 1 * * Toteutetaan kerran kuukaudessa
  • 0 0 1 1 * Käsikirjoitus suoritetaan kerran vuodessa

Kun olemme selvillä siitä, kuinka tehtävien ajoitus toimii Crontabissa, ensimmäinen asia, jonka aiomme tehdä, on luoda tiedosto, johon aiomme luoda kaikki prosessit, jotka haluamme automatisoida käyttämällä seuraavaa komentoa

crontab nombre-archivo

Jos emme halua luoda uutta tai olemme jo luoneet sen ja haluamme muokata sitä, käytämme tätä komentoa

crontab -e

Jos haluamme poistaa luodun Crontab-tiedoston

crontab -d

Seuraavalla komennolla voimme luetella kaikki Crontab-tiedoston tehtävät

crontab -d

Järjestelmänvalvojat voivat rajoittaa järjestelmäautomaation käyttöä muokkaamalla cron.allow- tai cron.den-tiedostoja, tiedostoja, jotka löytyvät hakemistosta /etc/cron.d/ tai /etc/, jos emme ole aiemmin muuttaneet niiden sijaintia.

automatisoida tehtäviä

Luomamme Crontab-tiedoston muokkaamiseen aiomme käyttää kaikkiin Linux-jakeluihin sisältyvää tekstieditoria, vaikka voimme myös muokata sitä suoraan Crontabista lisäämällä -e-muuttujan.

nano nombrearchivo

Esittelemme numerokoodin, johon liittyy tähtiä, ja skriptin, jonka haluamme suorittaa. Seuraavaksi meidän on annettava Cronille käyttöoikeudet sen suorittamiseen, muuten se ei tiedä sen olemassaolosta eikä voi koskaan suorittaa sitä. Tätä varten käytämme komentoa

chmod ugo+x nombrearchivo

Aluksi Crontabin käyttäminen tehtävien automatisoimiseen ei vaikuta ollenkaan helpolta ja muistuttaa Linuxin (melkein yleistä) tarvetta turvautua komentoriville käytännössä kaikkeen, mikä rajoittaa useampia käyttäjiä ottamaan Linuxia käyttöjärjestelmänä joka päivä. tämän päivän perusteella. .

Windowsin tehtävän ajastin käyttää graafista käyttöliittymää, jota ei ole kovin helppo käyttää ilman tarvittavaa tietoa, mutta se on kuitenkin paljon intuitiivisempi kuin Linuxin komentorivin kautta tarjoama.

Crontab ja Cron toimivat esimerkki

Ensimmäinen asia, joka meidän on tehtävä tehtävien automatisoimiseksi Linuxissa, on luoda tiedosto, johon aiomme sisällyttää kaikki komennot, jotka haluamme suorittaa tietokoneessa määrittäessämme. Tässä esimerkissä aiomme luoda "testi"-tiedoston, joka on vastuussa kaikkien tiedostojen ja tyhjien kansioiden poistamisesta tmp-hakemistosta. Tätä varten annamme seuraavan komennon.

crontab prueba

Seuraavaksi meidän on syötettävä komento (tai komennot, jotka erottavat ne puolipisteillä ";" ilman lainausmerkkejä). Tässä esimerkissä aiomme käyttää Crontabia tmp-kansion tiedostojen poistamiseen.

find /tmp -type f -empty -delete

Seuraavaksi muokkaamme tiedostoa aikataulun lisäämiseksi, eli milloin haluamme tiedostoon syöttämiemme tehtävien suorittavan.

crontab -e

Jotta se voidaan suorittaa joka päivä klo 10 aamulla, meidän on lisättävä 0 10 * * * ennen skriptiä ja jätettävä rivi seuraavasti

0 10 * * * find /tmp -type f -empty -delete

Jos haluamme sen suoritettavan muulloin, meidän on vain muutettava sen tunnin numeroa 10 (24 tunnin muodossa), jossa haluamme sen suoritettavan. Voimme myös käyttää aikakoodeja jonka olemme osoittaneet Ohjelmoinnin hallinta -osiossa sen määrittämiseksi. Lopuksi käytämme seuraavaa komentoa, jotta Cron voi suorittaa luomamme automaatiotiedoston.

[code]chmod ugo+x prueba

Vaihtoehtoja Cronille

Kuten olemme maininneet aiemmissa osissa, Cron vastaa komentojen suorittamisesta, jotka olemme aiemmin syöttäneet Crontabiin. Cron on täydellinen työkalu 24 tuntia vuorokaudessa pyöriville tiimeille, vaikka voimme myös mukauttaa sen työaikatauluumme, vaikka se vie resursseja tiimiltä tehtävien suorittamisen aikana. Jos etsimme yksinkertaisempia vaihtoehtoja Cronille, näytämme sinulle joitain parhaista vaihtoehdoista.

anakron

Anacronin avulla voimme ajoittaa tehtävien automaattisen suorittamisen päivälle, viikolle tai kuukaudelle milloin tahansa. Jos tietokone on sammutettu, seuraavan kerran käynnistäessämme tietokoneen suoritetaan aiemmin Crontabiin syöttämämme tehtävä. Cronilla, jos tietokone sammutetaan määritettynä päivänä, tehtävää ei suoriteta, kun käynnistämme tietokoneen. Anacron on saatavana useimmissa Linux-jakeluissa ja voimme asentaa sen tietokoneeseen seuraavan komennon avulla.

sudo apt install anacron

Cronie

Cronie tarjoaa meille paljon täydellisemmän kokemuksen kuin Cron ja pienen joukon sovelluksia (joihin Anacron sisältyy) ja joiden avulla voimme ohjelmoida työnkulkuja erittäin nopeasti ja helposti Crontabin kautta. Toisin kuin Anacron, Cronien asentaminen ei ole saatavilla Linuxin arkistoissa, joten meidän on vierailtava sen verkkosivulla GitHub ladataksesi sen tai käytä seuraavaa komentoa.

wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz