Crontab Linuxissa: ESIMERKKEJÄ työaikataulutuksesta

⚡ Älykäs yhteenveto

Crontab Linuxissa ajoittaa komennot suoritettavaksi automaattisesti tiettyinä aikoina, päivämäärinä tai välein cron-daemonin avulla, jolloin järjestelmänvalvojat voivat automatisoida varmuuskopiot, lokien siivouksen, ilmoitukset ja rutiininomaisen järjestelmän ylläpidon ilman manuaalisia toimia.

  • ⏰ Cron-taustaprosessi: Cron-taustaprosessi lukee crontab-tiedostot ja suorittaa jokaisen ajoitetun työn täsmälleen asettamasi minuuttimäärän mukaisesti.
  • 🗂️ Crontab-muoto: Suorituskomentoa edeltää viisi aikakenttää – minuutti, tunti, kuukaudenpäivä, kuukausi ja viikonpäivä.
  • 🇧🇷 Töiden muokkaus: Käytä crontab -e-komentoa työpaikkojen lisäämiseen tai muuttamiseen, crontab -l-komentoa niiden listaamiseen ja crontab -r-komentoa niiden poistamiseen.
  • 🔁 Erikoiskielet: Pikavalinnat, kuten @reboot, @daily, @weekly ja @hourly, korvaavat yleisten aikataulujen viisi aikakenttää.
  • 📅 Käytännön esimerkkejä: Valmiit merkinnät kattavat viiden minuutin välein tehtävät tehtävät, tietyt viikonpäivät, kuukausittaiset suoritukset ja käynnistystehtävät.
  • 🤖 AI-apu: Tekoälyavustajat ja GitHub Copilot voivat luoda ja selittää cron-lausekkeita sekunneissa.

Crontab Linux-työaikataulutuksessa esimerkkeineen

Crontab, lyhenne sanoista cron table, on asetustiedosto ja -komento, jotka ajavat Linux töiden ajoitus. Alla olevat osiot selittävät crontab-muotoa, komennot töiden lisäämiseen, listaamiseen ja poistamiseen, erityiset @-merkkijonot ja käyttövalmiita ajoitusesimerkkejä.

Mikä on crontab?

Cron on nimetty kreikan sanasta ”Chronos”, joka tarkoittaa aikaa. Se on järjestelmäprosessi (daemon), joka suorittaa tehtäviä automaattisesti tietyn aikataulun mukaisesti. Cron on joukko komentoja, joita käytetään säännöllisesti ajoitettujen tehtävien suorittamiseen. Crontab on lyhenne sanoista ”cron table”, ja sen avulla voit käyttää cron-työaikatauluttajaa näiden tehtävien suorittamiseen.

Crontab on myös kyseisen aikataulun muokkaamiseen käytetyn ohjelman nimi. Sitä ohjaa crontab-tiedosto — asetustiedosto, joka listaa määritetyn aikataulun mukaisesti säännöllisesti suoritettavat komentotulkkikomennot.

Miksi käyttää Cron-töitä?

Tässä ovat tärkeimmät syyt cron-töiden käyttöön Linuxissa:

  • Ottaa ajoitetut varmuuskopiot lokitiedostoista tai tietokannoista.
  • Poistaa vanhat lokitiedostot automaattisesti.
  • Archityhjentää ja poistaa tietokantataulukot.
  • Lähettää ilmoitussähköposteja, kuten uutiskirjeitä tai salasanan vanhenemismuistutuksia.
  • Suorittaa välimuistissa olevien tietojen säännöllisen puhdistuksen.
  • Automatisoi toistuvat Unix- ja Linux-työt.
  • Automatisoi rutiininomaisen järjestelmän ylläpidon.

Kuinka käyttää cronia Linuxissa?

Linux-järjestelmäpaketti sisältää hyödyllisen tehtävien ajoitusohjelman nimeltä crontab. Crontab on suosittu, koska työ voidaan ajoittaa suoritettavaksi pääkäyttäjänä, mikä helpottaa automatisoituja järjestelmämuutoksia. Sinun tarvitsee vain muuttaa tehtävää kerran ja odottaa, kunnes se käynnistetään uudelleen aikataulun mukaisesti.

Linux Crontab -muoto

Linuxin crontab-merkinnässä on kuusi kenttää. Ensimmäiset viisi kenttää määrittävät suoritusajan ja -päivämäärän, ja kuudes kenttä sisältää suoritettavan komennon.

Crontab-syntaksi:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

Alla oleva kaavio yhdistää jokaisen crontab-merkinnän tähden sen hallitsemaan kenttään minuutista viikonpäivään, jota seuraa suoritettava komento.

Linuxin crontab-muotokaavio, joka näyttää viisi aikakenttää ja komennon

Viisi aikakenttää hyväksyvät seuraavat arvot: minuutti (0–59), tunti (0–23), kuukaudenpäivä (1–31), kuukausi (1–12 tai tammi–deko) ja viikonpäivä (0–7, jossa sekä 0 että 7 tarkoittavat sunnuntaita). Voit hallita kutakin kenttää näillä erikoismerkeillä:

  • Tähti (*): Vastaa kaikkia mahdollisia kentän arvoja.
  • Määrittele alue: Käytä yhdysviivaa asettaaksesi alueen, kuten 1–10, 30–40, tammi-maaliskuu tai ma-ke.
  • Määritä useita alueita: Käytä pilkkuja yhdistääksesi alueita, kuten huhti-kesäkuu, loka-joulukuu.

Kuinka lisätä/muuttaa Crontab

Käyttäjät voivat muokata omia crontab-töitään seuraavalla crontab-komennolla. -u-valitsin kohdistuu tietyn käyttäjän crontabiin, joten anna käyttäjätunnus myöhempien esimerkkien mukaisesti:

$ crontab -u -e 

Yllä oleva komento avaa järjestelmäsi henkilökohtaisen crontab-kokoonpanon, jota voit muokata oletustekstieditorissasi.

Cronia ei tarvitse käynnistää uudelleen; se poimii muutokset automaattisesti. Voit tarkastella nykyisiä töitäsi seuraavasti:

$ crontab -l

Voit poistaa crontab-tehtävät seuraavalla komennolla:

$ crontab -r

Voit lisätä tai päivittää työtehtävän crontabissa seuraavalla komennolla:

crontab -e

Jos haluat muokata toisen käyttäjän crontab-tiedostoa, nimeä käyttäjä käyttämällä -u-optiota:

crontab -u username -e

Kuinka listata Crontab

Nykyisen käyttäjän crontab-merkintöjen tarkasteleminen:

crontab -l

Tietyn käyttäjän crontab-merkintöjen tarkasteleminen:

crontab -u username -l

Tärkeitä Crontab-esimerkkejä

Tässä on joitakin tärkeitä, käyttövalmiita esimerkkejä crontab-aikatauluista:

Tuotetiedot Komento
Suorittaa erilaisia ​​ajoitustöitä. Alla oleva komento suoritetaan päivittäin klo 7 ja 5.
0 7,17 * * * /scripts/script.sh
Suorittaa cron-työn 5 minuutin välein.
*/5* * * * *  /scripts/script.sh
Suorittaa tehtävän joka Monday klo 5. Tästä on hyötyä viikoittaisissa tehtävissä, kuten järjestelmän siivouksessa.
0 5 * * mon  /scripts/script.sh
Suorittaa skriptisi 3 minuutin välein.
*/3 * * * * /scripts/monitor.sh
Ajoittaa cron-työn, joka suoritetaan tiettyinä kuukausina – tässä tapauksessa helmikuussa, kesäkuussa ja syyskuussa.
* * * feb,jun,sep *  /script/script.sh
Suoritetaan valittuina päivinä. Tämä esimerkki suoritetaan joka Monday ja keskiviikkona klo 5.
0 17 * * mon,wed  /script/script.sh
Sallii cronin suorittamisen joka kuukauden ensimmäisenä lauantaina.
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
Suorittaa komentosarjan 6 tunnin välein alla määritetyllä tavalla.
0 */6 * * * /scripts/script.sh
Ajoittaa tehtävän suoritettavaksi kahdesti Monday ja tiistaina. Käytä seuraavia asetuksia tehdäksesi sen.
0 4,17 * * mon,tue /scripts/script.sh
Ajoittaa cron-työn suoritettavaksi 15 sekunnin välein.
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
Ajoittaa tehtäviä vuosittain. @yearly on samankaltainen kuin “0 0 1 1 *”. Se suorittaa tehtävän kerran vuodessa keskiyöllä 1. tammikuuta – kätevä uudenvuoden tervehdyksissä.
@yearly /scripts/script.sh 
Suorittaa tehtäviä kuukausittain. @monthly on samankaltainen kuin “0 0 1 * *”. Se suorittaa tehtävän keskiyöllä jokaisen kuukauden ensimmäisenä päivänä.
@monthly /scripts/script.sh
Suorittaa useita tehtäviä käyttämällä yhtä cron-merkintää.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
Ajoittaa tehtäviä viikoittain. @weekly on samankaltainen kuin “0 0 * * 0”. Se suorittaa viikoittaisia ​​tehtäviä, kuten järjestelmän siivouksen, joka sunnuntai keskiyöllä.
@weekly /bin/script.sh
Ajoittaa tehtäviä päivittäin. @daily on samankaltainen kuin “0 0 * * *”. Se suorittaa tehtävän kerran päivässä keskiyöllä.
@daily /scripts/script.sh
Suorittaa tehtäviä tunneittain. @hourly on samankaltainen kuin “0 * * * *”. Se suorittaa tehtävän joka tunnin alussa.
@hourly /scripts/script.sh
Suorittaa tehtäviä järjestelmän uudelleenkäynnistyksen yhteydessä. @reboot on hyödyllinen tehtäville, jotka järjestelmän tulisi suorittaa käynnistyksen yhteydessä, jolloin taustatyöt alkavat automaattisesti.
@reboot /scripts/script.sh

UKK

Käyttäjän crontabit tallennetaan hakemistoon /var/spool/cron/ (tai /var/spool/cron/crontabs/ Debianissa ja Ubuntu), kun taas järjestelmänlaajuinen aikataulu sijaitsee tiedostoissa /etc/crontab ja /etc/cron.d. Muokkaa käyttäjän crontab-tiedostoja aina komennolla crontab -e sen sijaan, että avaisit ne suoraan.

Cron suorittaa töitä vain niiden täsmälleen ajoitettuina aikoina ja ohittaa ne, jos kone on sammutettu. tracks-sovellus tarkistaa unohtuneet työt ja suorittaa ne, kun järjestelmä on taas käynnissä, joten se sopii kannettaville tietokoneille ja pöytätietokoneille, jotka eivät ole aina käynnissä.

Cron käyttää minimaalista ympäristöä, joten rajoitettu PATH on yleinen syy. Käytä absoluuttisia polkuja komennoille ja skripteille, tee skriptistä suoritettava ja ohjaa tuloste lokitiedostoon, jotta voit tallentaa mahdolliset virheet virheenkorjausta varten.

Lisää komentoon >> /polku/lokitiedostoon 2>&1 tallentaaksesi vakiotulosteen ja virheet tiedostoon. Vaihtoehtoisesti voit asettaa crontab-taulukon yläosassa olevan MAILTO-muuttujan, jotta cron lähettää jokaisen työn tulosteen sähköpostitse kyseiseen osoitteeseen.

Tiedostoilla /etc/cron.allow ja /etc/cron.deny hallitaan käyttöoikeuksia. Jos cron.allow on olemassa, vain siinä luetellut käyttäjät voivat käyttää crontabia. Jos vain cron.deny on olemassa, kaikki muut paitsi luetellut käyttäjät voivat ajoittaa töitä.

Käyttäjän crontab-tiedostossa, joka on luotu komennolla crontab -e, on viisi aikakenttää ja niiden perässä komento. Järjestelmätiedosto /etc/crontab lisää kentän, jossa nimetään työn suorittava käyttäjä. Kentät ovat minuutit, tunnit, päivä, kuukausi, viikonpäivä, käyttäjä ja lopuksi komento.

Kyllä. Koneoppimistyökalut voivat asettaa lähtötasolle normaalit töiden suoritusajat ja valmistumisajat ja merkitä sitten poikkeamia, kuten liian kauan kestävän, hiljaisesti epäonnistuvan tai aikataulustaan ​​myöhästyneen työn. Tekoälylokien analyysi ryhmittelee myös toisiinsa liittyvät virheet, mikä nopeuttaa perussyiden selvittämistä.

Kyllä. GitHub Copilot osaa luoda cron-lausekkeita selkokielisestä kommentista, selittää aikataulun, kuten */5 * * * *, toiminnan ja luonnostella tehtävän suorittaman komentosarjan. Testaa lauseke aina ennen sen lisäämistä tuotantoympäristön crontabiin.

Tiivistä tämä viesti seuraavasti: