- Kuinka crond-daemon toimii ja miten tehtäviä hallitaan crontab-tiedoston avulla.
- Yksityiskohtainen syntaksi ja erikoismerkkien käyttö tarkkojen suoritusten ohjelmointiin.
- Varmuuskopioskriptien toteutus TAR:lla ja järjestelmän ylläpidon automatisointi.
- Nykyaikaisia vaihtoehtoja, kuten systemd-ajastimet ja graafiset työkalut prosessien hallintaan.
Olitpa sitten äskettäin vaihtanut Linuxiin tai hallinnoinut omaa palvelintasi jo jonkin aikaa, olet luultavasti huomannut, että jotkin tehtävät ovat todella tuskaa tehdä manuaalisesti. Väliaikaistiedostojen puhdistamisesta tietojen turvallisuuden varmistamiseen varmuuskopioiden avulla, näiden prosessien automatisointi on avain turhautumisen välttämiseen ja estääksesi yksinkertaisen valvonnan pyyhkimästä pois kuukauden työn.
Tämän ratkaisemiseksi UNIX-tyyppisissä järjestelmissä on legendaarinen työkalu nimeltä Cron. Pohjimmiltaan se on kuin komentojen herätyskello , joka käynnistää skriptejä tai sovelluksia juuri haluamanasi ajankohtana ja toimii taustalla, kun nautit kahvia tai unohdat kokonaan tehtävän olemassaolon.
Mikä Cron tarkalleen ottaen on ja miten se liikkuu?
Kun puhumme Cronista, viittaamme itse asiassa daemoniin nimeltä crond . Linux-maailmassa daemon on yksinkertaisesti prosessi, joka toimii taustalla ilman käyttöliittymää järjestelmän käynnistymisestä lähtien. Sen työ on yksitoikkoista mutta elintärkeää: se tarkistaa joka minuutti asetustiedostoista, onko olemassa ajoitettuja cron-töitä, jotka vastaavat nykyistä aikaa ja päivämäärää.
Jotta kaikki toimisi ongelmitta, on ratkaisevan tärkeää, että järjestelmän kello on asetettu oikein. Jos aika tai aikavyöhyke on väärä, varmuuskopiot suoritetaan väärään aikaan. Siksi on suositeltavaa käyttää komentoa `timedatectl` varmistaaksesi, että synkronointi NTP-palvelimien kanssa on oikein, ja varmistaa, ettei järjestelmässä ole aikaeroja.
Crontab-tiedosto: Missä taika tapahtuu
Jos Cron on moottori, crontab on käskykartta . Se on tekstitiedosto, johon kirjoitamme, mitä haluamme suorittaa ja milloin. Mielenkiintoista kyllä, tiedostoja ei ole vain yksi; järjestelmässä on globaali crontab osoitteessa /etc/crontab, mutta jokaisella käyttäjällä voi olla oma , jolloin eri ihmiset voivat ajoittaa tehtäviään ilman, että heidän tarvitsee aina olla järjestelmänvalvojan oikeuksia.
Näiden tehtävien hallintaan käytämme komentoa `crontab -e` muokkaamiseen, `crontab -l` aktiivisten tiedostojen listaamiseen ja `crontab -r`, jos haluamme poistaa kaiken ja aloittaa alusta. Se on erittäin siisti tapa järjestää järjestelmän ylläpito koskematta kriittisiin kernel-tiedostoihin.
Cron-syntaksin purkaminen
Tehtävän ajoittamiseksi sinun on noudatettava erittäin tarkkaa viiden aikakentän järjestystä, jota seuraa komento. Järjestys on: minuutti, tunti, kuukaudenpäivä, kuukausi ja viikonpäivä . Jos esimerkiksi syötämme 0 19 * * 0, käskemme järjestelmän aktivoitumaan joka sunnuntai klo 7.
Elämämme helpottamiseksi on olemassa erikoismerkit jotka antavat meille täyden hallinnan. Tähti (*) tarkoittaa "aina" tai "mikä tahansa arvo", kun taas kauttaviivaa (/) käytetään aikavälejä määrittämään, kuten */10 suorittaa jotain kymmenen minuutin välein. Yhdysviiva (-) määrittää alueita ja pilkku (,) mahdollistaa tiettyjen arvojen listaamisen. Lisäksi on olemassa valmiiksi määritettyjä pikanäppäimiä kuten @daily, @weekly tai @reboot, jotka yksinkertaistavat kirjoittamista yleisimmissä tapauksissa.
Ensimmäisen varmuuskopiojärjestelmän luominen
Yksi hyödyllisimmistä sovelluksista on tietojen varmuuskopiointi. Tähän TAR-työkalu on ihanteellinen natiivivaihtoehto . Voimme luoda Bash-skriptin, joka pakkaa tiedostomme, määrittää tiedostonimelle nykyisen päivämäärän ja, mikä tärkeintä, poistaa tarpeettomat kansiot, kuten välimuistin tai roskakorin, jotta varmuuskopiosta ei tule gigatavujen roskapostia.
Kun skripti on luotu (esimerkiksi hakemistoon /usr/local/bin/mybackup) ja suoritusoikeudet on myönnetty komennolla chmod +x , lisää vain rivi root-crontabiin. Tällä tavoin palvelin suorittaa varmuuskopioinnin automaattisesti, ja voit jopa ajoittaa skriptin poistamaan automaattisesti yli kaksi viikkoa vanhemmat varmuuskopiot kiintolevyn täyttymisen välttämiseksi .
Edistynyt hallinta ja absoluuttiset polut
Hyvin yleinen virhe aloittelijoiden keskuudessa on suhteellisten polkujen käyttö skripteissä. Cron toimii hyvin rajoitetussa ympäristössä eikä tiedä sijaintiasi, joten sinun tulisi aina käyttää absoluuttisia polkuja (kuten /home/user/script.sh ./script.sh:n sijaan). Muuten komento epäonnistuu hiljaa ja sinua odottaa epämiellyttävä yllätys, kun sinun on palautettava tietosi.
Sokkona sisään menemisen välttämiseksi on tärkeää uudelleenohjaa tuloste lokeihinOperaattorin käyttäminen >>> /var/log/backup.log 2>&1Voimme tallentaa sekä onnistumiset että epäonnistumiset tiedostoon. Tällä tavoin, jos jokin menee pieleen, meidän tarvitsee vain katsoa lokitiedostoa tietääksemme tarkalleen, mitä tapahtui, arvailematta.
Vaikutus suorituskykyyn ja parhaat käytännöt
Järjestelmän ylikuormittamista joka sekunti suoritettavilla tehtävillä ei suositella, koska se voi aiheuttaa piikkejä suorittimen ja RAM-muistin käytössä . Älykkäin lähestymistapa on ajoittaa resursseja kuluttavat prosessit, kuten tietokannan päivitykset tai suuret varmuuskopiot, aamun varhaisille tunneille tai ruuhka-aikojen ulkopuolelle, jotta ne eivät vaikuta käyttäjiin.
Jotta estetään tehtävien päällekkäisyys toisen kanssa, jos ensimmäisen suorittaminen kestää odotettua kauemmin, on suositeltavaa käyttää flock-funktiota , joka estää saman skriptin samanaikaisen suorittamisen. Lisäksi järjestelmänvalvoja voi rajoittaa Cronin käyttäjiä määrittämällä cron.allow- ja cron.deny -tiedostot varmistaen, että vain valtuutetut henkilöt voivat ajoittaa tehtäviä palvelimella.
Nykyaikaiset vaihtoehdot: Systemd-ajastimet ja paljon muuta
Vaikka Cron on klassikko, nykyaikaiset järjestelmät käyttävät systemd-ajastimia . Nämä ovat paljon tehokkaampia, koska niiden avulla voit hallita riippuvuuksia, käsitellä virheitä tehokkaammin ja suorittaa tehtäviä järjestelmätapahtumien (kuten käynnistyksen) perusteella eikä pelkästään kellonajan perusteella. Ne konfiguroidaan käyttämällä .timer- ja .service-tiedostoja /etc/systemd/system/-hakemistossa.
Niille, jotka eivät ole tottuneet käyttämään terminaalia, on olemassa graafisia vaihtoehtoja , kuten KCron (KDE:lle) tai verkkopohjaisia työkaluja, kuten Webmin. Muissa käyttöjärjestelmissä, kuten macOS:ssä, käytetään launchd:tä , joka tarjoaa paljon syvemmän integraation Applen ekosysteemiin ja mahdollistaa epäonnistuneiden tehtävien automaattisen uudelleenkäynnistyksen.
Muita palvelimien tosielämän käyttötapauksia
Varmuuskopioiden lisäksi Cron on täydellinen työkalu järjestelmän pitämiseen puhtaana . Voit ajoittaa tehtäviä poistamaan vanhoja lokeja viikoittain tai käynnistämään uudelleen palveluita, jotka usein kaatuvat. Se on myös välttämätön tietojen synkronointiin rsyncin avulla eri koneiden välillä, mikä varmistaa, että tiedot replikoidaan ilman ihmisen puuttumista asiaan.
Verkkoympäristöissä sitä käytetään jatkuvasti massasähköpostien lähettämiseen , päivittäisten myyntiraporttien luomiseen tai sivun välimuistin päivittämiseen. Pohjimmiltaan kaikki toistuvat ja ennustettavat toiminnot voidaan ja tulisi delegoida Cronille järjestelmänvalvojan tuottavuuden optimoimiseksi.
Automaation hallitseminen Linuxissa mahdollistaa manuaalisesti hallitun palvelimen muuttamisen autonomiseksi ja tehokkaaksi koneeksi. Yhdistämällä Bash-skriptien käytön, crontabin tarkkuuden ja lokien valvonnan voit varmistaa, että ylläpito, tietoturva ja tietojen eheys hoidetaan automaattisesti, mikä vapauttaa aikaa ja vähentää merkittävästi inhimillisten virheiden marginaalia infrastruktuurin hallinnassa.



