- Kā darbojas crond dēmons un kā uzdevumi tiek pārvaldīti, izmantojot crontab failu.
- Detalizēta sintakse un speciālo rakstzīmju izmantošana precīzas izpildes programmēšanai.
- Rezerves kopēšanas skriptu ieviešana ar TAR un sistēmas uzturēšanas automatizācija.
- Mūsdienīgas alternatīvas, piemēram, systemd taimeri un grafiskie procesu pārvaldības rīki.
Neatkarīgi no tā, vai nesen esat pārgājis uz Linux vai jau kādu laiku pārvaldāt savu serveri, jūs droši vien esat sapratis, ka dažus uzdevumus manuāli veikt ir ļoti apgrūtinoši. Sākot ar pagaidu failu tīrīšanu un beidzot ar datu drošības nodrošināšanu ar dublējumkopijām, šo procesu automatizācija ir būtiska, lai izvairītos no neapmierinātības un nepieļautu, ka vienkārša neuzmanība izmet mēneša darbu.
Lai to atrisinātu, UNIX līdzīgām sistēmām ir leģendārs rīks ar nosaukumu Cron. Būtībā tas ir kā komandu modinātājs , kas palaiž skriptus vai lietojumprogrammas tieši jūsu norādītajā laikā, darbojoties fonā, kamēr jūs malkojat kafiju vai pilnībā aizmirstat par uzdevuma esamību.
Kas īsti ir Cron un kā tas pārvietojas?
Kad mēs runājam par Cron, mēs patiesībā domājam dēmonu ar nosaukumu crond . Linux pasaulē dēmons ir vienkārši process, kas darbojas fonā bez lietotāja saskarnes no brīža, kad sistēma tiek startēta. Tā uzdevums ir monotons, bet svarīgs: katru minūti tas pārbauda konfigurācijas failus, lai redzētu, vai ir ieplānoti cron darbi, kas atbilst pašreizējam laikam un datumam.
Lai viss noritētu nevainojami, ir ļoti svarīgi, lai sistēmas pulkstenis būtu pareizi iestatīts. Ja laiks vai laika josla nav pareiza, dublējumkopijas tiks palaistas nepareizā laikā. Tāpēc ieteicams izmantot komandu `timedatectl` , lai pārbaudītu, vai sinhronizācija ar NTP serveriem ir pareiza, nodrošinot, ka sistēmā nav laika neatbilstību.
Crontab fails: kur notiek burvība
Ja dzinējs ir Cron, tad crontab ir instrukciju karte . Tas ir teksta fails, kurā mēs pierakstām, ko vēlamies palaist un kad. Interesanti, ka nav tikai viena faila; sistēmai ir globāls crontab fails /etc/crontab, bet katram lietotājam var būt savs , kas ļauj dažādiem cilvēkiem plānot savus uzdevumus, visu laiku neizmantojot administratora privilēģijas.
Lai pārvaldītu šos uzdevumus, rediģēšanai izmantojam komandu `crontab -e` , aktīvo failu sarakstam — `crontab -l` , bet aktīvo failu sarakstam — `crontab -r` . Tas ir ļoti vienkāršs veids, kā organizēt sistēmas apkopi, nepieskaroties kritiskiem kodola failiem.
Cron sintakses analīze
Lai ieplānotu uzdevumu, jāievēro ļoti stingra piecu laika lauku secība, kam seko komanda. Secība ir: minūte, stunda, mēneša diena, mēnesis un nedēļas diena . Piemēram, ja ievadām 0 19 * * 0, mēs norādām sistēmai aktivizēties katru svētdienu plkst. 19:00.
Lai atvieglotu mūsu dzīvi, ir īpašās rakstzīmes kas dod mums pilnīgu kontroli. Zvaigznīte (*) nozīmē "vienmēr" vai "jebkura vērtība", savukārt slīpsvītra (/) tiek izmantota, lai definētu intervālus, piemēram, */10 lai kaut ko palaistu ik pēc desmit minūtēm. Defise (-) norāda diapazonus, un komats (,) ļauj norādīt konkrētas vērtības. Turklāt ir arī iepriekš definēti īsinājumtaustiņi piemēram, @daily, @weekly vai @reboot, kas vienkāršo rakstīšanu visbiežāk sastopamajos gadījumos.
Jūsu pirmās rezerves sistēmas izveide
Viena no visnoderīgākajām lietojumprogrammām ir datu dublēšana. Šim nolūkam TAR rīks ir ideāla vietējā opcija . Mēs varam izveidot Bash skriptu, kas iepako mūsu failus, piešķir faila nosaukumam pašreizējo datumu un, kas ir ļoti svarīgi, izslēdz nevajadzīgas mapes, piemēram, kešatmiņu vai miskasti, lai dublējums nekļūtu par gigabaitu nevēlamu failu.
Kad skripts ir izveidots (piemēram, mapē /usr/local/bin/mybackup) un izpildes atļaujas ir piešķirtas ar komandu chmod +x , vienkārši pievienojiet rindu saknes crontab failam. Tādā veidā serveris automātiski veiks dublēšanu, un jūs pat varat ieplānot skriptu tā, lai tas automātiski dzēstu dublējumus, kas vecāki par divām nedēļām, lai nepārpildītu cieto disku.
Paplašināta administrēšana un absolūtie ceļi
Ļoti izplatīta kļūda iesācēju vidū ir relatīvu ceļu izmantošana skriptos. Cron darbojas ļoti ierobežotā vidē un nezina jūsu atrašanās vietu, tāpēc vienmēr jāizmanto absolūtie ceļi (piemēram, /home/user/script.sh, nevis ./script.sh). Pretējā gadījumā komanda neizdosies bez skaņas, un jūs gaida nepatīkams pārsteigums, kad būs jāatgūst dati.
Lai izvairītos no ieiešanas aklā, ir svarīgi novirzīt izvadi uz žurnāliemIzmantojot operatoru >>> /var/log/backup.log 2>&1Mēs varam saglabāt gan veiksmes, gan neveiksmes failā. Tādā veidā, ja kaut kas noiet greizi, mums tikai jāaplūko žurnālfails, lai precīzi zinātu, kas notika, bez nepieciešamības minēt.
Ietekme uz veiktspēju un labākā prakse
Nav ieteicams pārslogot sistēmu ar uzdevumiem, kas tiek izpildīti katru sekundi, jo tas var izraisīt centrālā procesora un operatīvās atmiņas (RAM) izmantošanas pieaugumu . Gudrākā pieeja ir ieplānot resursu ietilpīgus procesus, piemēram, datubāzes atjauninājumus vai lielus dublējumus, agrās rīta stundās vai ārpus sastrēgumstundām, lai neietekmētu lietotājus.
Lai novērstu viena uzdevuma pārklāšanos ar citu, ja pirmā izpilde aizņem ilgāku laiku nekā paredzēts, ieteicams izmantot flock , kas novērš viena un tā paša skripta vienlaicīgu izpildi. Turklāt, lai ierobežotu to, kas var izmantot Cron, administrators var konfigurēt failus cron.allow un cron.deny , nodrošinot, ka tikai pilnvarotas personas var plānot uzdevumus serverī.
Mūsdienu alternatīvas: Systemd taimeri un citi
Lai gan Cron ir klasisks rīks, mūsdienu sistēmas izmanto systemd taimerus . Tie ir daudz jaudīgāki, jo ļauj pārvaldīt atkarības, efektīvāk apstrādāt kļūdas un izpildīt uzdevumus, pamatojoties uz sistēmas notikumiem (piemēram, startēšanu), nevis tikai pulksteni. Tie tiek konfigurēti, izmantojot .timer un .service failus failā /etc/systemd/system/.
Tiem, kam terminālis nešķiet ērti, ir pieejamas grafiskas opcijas, piemēram, KCron (KDE vidē) vai tīmekļa rīki, piemēram, Webmin. Citās operētājsistēmās, piemēram, macOS, tiek izmantots launchd , kas piedāvā daudz dziļāku integrāciju ar Apple ekosistēmu, ļaujot automātiski restartēt neizdevušos uzdevumus.
Citi reālās pasaules lietošanas gadījumi serveros
Papildus dublējumkopijām Cron ir ideāls rīks sistēmas tīrības uzturēšanai . Varat ieplānot uzdevumus, lai katru nedēļu dzēstu vecos žurnālus vai restartētu pakalpojumus, kas mēdz avarēt. Tas ir svarīgi arī datu sinhronizācijai , izmantojot rsync starp dažādām iekārtām, nodrošinot, ka informācija tiek replicēta bez cilvēka iejaukšanās.
Tīmekļa vidē to pastāvīgi izmanto masveida e-pasta ziņojumu sūtīšanai , ikdienas pārdošanas pārskatu ģenerēšanai vai lapas kešatmiņas atjaunināšanai. Būtībā jebkura atkārtota un paredzama darbība var un ir jādeleģē Cron, lai optimizētu administratora produktivitāti.
Automatizācijas apgūšana operētājsistēmā Linux ļauj pārveidot manuāli pārvaldītu serveri par autonomu un efektīvu mašīnu. Apvienojot Bash skriptu izmantošanu, crontab precizitāti un žurnālu uzraudzību, jūs varat nodrošināt, ka apkope, drošība un datu integritāte tiek apstrādāta automātiski, atbrīvojot laiku un ievērojami samazinot cilvēcisko kļūdu robežu infrastruktūras pārvaldībā.



