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.

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.
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
|

