5 Crontab -esimerkkiä Linux -tehtävien automatisoimiseksi

5 Crontab -esimerkkiä Linux -tehtävien automatisoimiseksi

Cron -ohjelma automatisoi muiden ohjelmien suorittamisen Linuxissa. Cron on demoni, joka toimii jatkuvasti ja käynnistää muita ohjelmia tietyn aikataulun mukaisesti. Useat eri tiedostot määrittävät tämän aikataulun. Heidät tunnetaan erikseen nimellä crontabs.





Cron voi ajoittaa minkä tahansa Unix -komennon tai tehtävän. Joskus haluat työskennellä yksinkertaisella komennolla. Muina aikoina sinun on kirjoitettava käsikirjoitus suorittaaksesi koko tehtävän. Cron toimii hyvin molemmilla tavoilla. Se tukee myös monimutkaisia ​​ajoitussääntöjä ja joustavia tapoja käsitellä komentosarjan tulosta.





Suoritatpa sitten yksinkertaisia ​​käyttäjätehtäviä tai täydellistä järjestelmänhallintaa, sinun on ymmärrettävä, miten cron toimii käytännön esimerkkien avulla.





1. Puhdistus /tmp System-Wide Crontab -toiminnon avulla

The /tmp hakemisto on väliaikainen sijainti yleiskäyttöön mille tahansa ohjelmalle tai järjestelmän käyttäjälle. Monet Unix -järjestelmät poistavat vanhat tiedostot /tmp -hakemistosta käynnistyksen aikana. Toiset ajoittavat tämän operaation, usein käyttämällä cronia.

Jos haluat kuitenkin hallita tätä prosessia mukautetusti tai haluat soveltaa sitä toiseen hakemistoon, nopea cron -tehtävän määrittäminen on helppo tapa tehdä se.



Tässä on yksi tapa puhdistaa /tmp tai mikä tahansa muu valitsemasi hakemisto:

1 3 * * * /usr/bin/find /tmp -type f -atime +10 -delete

Joka minuutti kolmen jälkeen joka päivä cron suorittaa tämän komennon. Se käyttää etsi komento hakea tiedostoja /tmp -hakemistosta. Se suodattaa pois kaikki paitsi normaalit tiedostot, joita on viimeksi muutettu vähintään 10 päivää sitten. Sitten se poistaa kaikki löydetyt tiedostot.





Sinun pitäisi lisätä tällainen komento globaaliin crontabiin, kuten /etc/crontab tai rootin crontabia käyttämällä sudo crontab -e . Komento on suoritettava pääkäyttäjänä, jotta se voi poistaa tiedostoja /tmp -tiedostosta riippumatta siitä, kuka ne omistaa.

Huomaa, että tämä esimerkki määrittää etsintäkomennon koko polun. Cron käyttää perusversiota PATH -asetus etsiä suoritettavia tiedostoja, joten jos komento on vakiopaikassa (kuten /usr/bin ), tämä ei ole välttämätöntä. Voit määrittää vaihtoehtoisen polun itse crontabissa, jos haluat tämän lähestymistavan. Mutta koko polun käyttäminen komentoihin on hieman joustavampaa.





Jos työskentelet projektissa, joka kirjoittaa lokeja tai tallentaa välimuistiin tallennettuja tietoja, tällainen lähestymistapa voi olla elintärkeä, jos poistat tiedostoja vapauttaaksesi levytilaa. Vaikka yllä oleva esimerkki on nopea ja likainen lähestymistapa, sinun on käytettävä komentoa, kuten tmpwatch , jos se on saatavilla.

2. Tietokannan varmuuskopiot kahdesti päivässä

Tästä lähtien keskitytään käyttäjäkohtaisiin tehtäviin, joita voit hallita paikallisen crontabin kautta. Voit muokata nykyisen käyttäjän crontabia käyttämällä seuraavaa komentoa:

crontab -e

Tämän crontabin pitäisi sisältää käyttäjäkohtaisia ​​tehtäviä. Kuvittele, että työskentelet projektissa, johon liittyy MySQL -tietokannan täyttäminen. Voit käyttää mysqldump työkalu luoda koko tietokannan SQL -dump. Uudelleenohjaamalla sen tuotoksen voit saada helpot, ajoitetut tietokannan varmuuskopiot.

30 4 * * * /usr/local/mysql/bin/mysqldump --login-path=local --databases albums > /tmp/album-db.$(date +\%s).sql

Oletuksena cron lähettää tuloksen (mukaan lukien virheet) sähköpostitse käyttäjälle, jolle crontab -tiedosto kuuluu. Mutta voit ohjata tuotoksen samalla tavalla kuin komentoriviltä käyttämällä > tiedostonimi merkintä.

järjestelmälangan poikkeus ei käsitelty Windows 10 -päivitystä

Huomaa, kuinka yllä oleva esimerkki käyttää komentojen korvaamista tiedostonimen luomiseen nykyisen Unix -aikaleiman perusteella. Koska % symbolilla on erityinen merkitys cronille, komennon on poistettava se edellisellä vinoviivalla.

3. Sivuston käyttöajan tarkistaminen mukautetulla komentosarjalla

Olet ehkä huomannut, että viimeisen esimerkin komento oli epämiellyttävän pitkä. Onneksi mikään ei estä sinua tallentamasta komentoja komentosarjaan ja suorittamasta sitä komentosarjan kautta. Tässä on esimerkki, joka suorittaa komentosarjan joka minuutti:

* * * * * /Users/bobby/bin/site-monitor.sh

Huomaa, että teoriassa voit käyttää KOTI muuttujan tai tilden laajennus lyhyemmälle komennolle:

* * * * * ~/bin/site-monitor.sh

Voit halutessasi välttää sitä, jos cron lakkaa tukemasta sitä. Koko polun käytöstä ei ole todellista haittaa, ja se on luultavasti luettavampi.

Käsikirjoitus itse käyttää curl -ohjelmaa noutamaan HTTP -tilakoodi tietylle URL -osoitteelle. Jos tila osoittaa jotain muuta kuin onnistumista, komentosarja kirjoittaa viestin lähtöön.

Kuten aiemmin mainittiin, cron lähettää tämän tuloksen meille sähköpostitse. Voi olla hyödyllistä, jos komennot cronissa eivät tuota menestystä.

#!/bin/bash
STATUS=`curl -s -o /dev/null -I -w '%{http_code}' http://example.com/`
if [ '$STATUS' != '200' ]
then
echo 'site appears to be down'
fi

4. Levytilan raportit sähköpostitse

Jos haluat muuttaa cronin oletuslähetyskäyttäytymistä, voit käyttää MAILTO ympäristömuuttuja. Cron tukee muutamia muuttujia, jotka voit asettaa crontab -tiedostoosi. Cron soveltaa näitä muuttujia jokaisen seuraavan komennon ympäristöön.

Jos haluat asettaa vaihtoehtoisen kohdesähköpostiosoitteen, käytä seuraavaa muotoa:

MAILTO=user@example.com

Sinun on suoritettava tämä koneella, joka on määritetty tarvittaessa lähettämään ulkoinen sähköposti. Tässä on esimerkki, joka lähettää sähköpostiviestin toiselle käyttäjälle samalla koneella. Se kulkee kahdesti päivässä, klo 12.00 ja 23.00. The df komento näyttää vapaata levytilaa, joten tämä crontab -merkintä antaa tehtäväksi tarkistaa, että levytila ​​näyttää OK:

MAILTO='sarah'
0 12,23 * * * /bin/df -h

Tuloksena oleva sähköposti näyttää tältä:

Huomaa, että cron lisää omat mukautetut sähköpostin otsikot. Nämä voivat olla hyödyllisiä virheenkorjauksessa. Voit myös poistaa cronin oletuslähetystoiminnon käytöstä käyttämällä tyhjää merkkijonoa:

MAILTO=''

5. Lähetä viesti tiettyinä aikoina

Muut esimerkit käyttävät melko suoraviivaista ajoitusta, mutta cron tukee tehokasta syntaksia aikamäärityksille. Se ei käsittele vain tarkkoja osumia, vaan myös:

  • Useita arvoja pilkulla erotettuna ( , )
  • Väliviivalla määritetyt alueet ( - )
  • Askelarvot eteenpäin vinoviivan jälkeen ( / )

Jos esimerkiksi haluat lähettää viestin kaikille kirjautuneille käyttäjille, kaksi kertaa tunnissa työaikana, mutta vain kolmen tunnin välein, esimerkiksi seuraavat asiat riittävät:

0 15,45 9-17/3 ? * * * echo 'Enjoy your work!' | wall

Tämä komento suoritetaan klo 15 ja 45 minuuttia tunnin jälkeen kolmen tunnin välein kello 9–17. Seinäkomento lähettää viestin jokaiselle sisäänkirjautuneelle päätelaitteen käyttäjälle.

Saatat jopa huomata, että cron tarjoaa joustavamman ajoituksen kuin kalenterisovelluksesi. Joidenkin muunnelmien avulla voit määrittää komennot, jotka suoritetaan kuukauden toisena perjantaina tai tiettyä päivämäärää lähimpänä arkipäivänä.

Cron voi automatisoida monenlaisia ​​Linux -tehtäviä

Tämä on pieni valikoima tehtäviä, joita cron voi auttaa sinua automatisoimaan. Monimutkaisen syntaksin mukauttaminen saattaa kestää jonkin aikaa, mutta cron on tehokas apuohjelma. Voit käyttää cronia sekä järjestelmän laajuisiin että käyttäjäkohtaisiin tehtäviin.

Ajoituksen monimutkaisella syntaksilla cron on tehokas, mutta sinulla pitäisi todennäköisesti olla hyvä viittaus käsiin. Crontabs sallii kommenttien lähettämisen, joten haluat ehkä lisätä kommenttikentän omalle aikakenttien dokumentoimiseksi.

Jaa Jaa Tweet Sähköposti Kuinka käyttää Crontabia toistuvien tehtävien automatisointiin Linuxissa

Haluatko säästää aikaa ja automatisoida keskeiset prosessit Linuxissa? Crontab on vastaus.

Lue seuraava
Liittyvät aiheet
  • Linux
  • Tietokoneautomaatio
  • Tehtävien automaatio
  • Linux -komennot
Kirjailijasta Bobby Jack(58 artikkelia julkaistu)

Bobby on teknologian harrastaja, joka työskenteli ohjelmistokehittäjänä lähes kaksi vuosikymmentä. Hän on intohimoinen pelaamisesta, työskentelee Switch Editor Magazine -lehden arvostelutoimittajana ja on upotettu kaikkeen verkkojulkaisemiseen ja -kehitykseen.

kuinka tehdä muistilappu Windows 10: een
Lisää Bobby Jackilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi