5 Crontab piemēri, kas palīdzēs automatizēt Linux uzdevumus

5 Crontab piemēri, kas palīdzēs automatizēt Linux uzdevumus

Programma cron automatizē citu programmu izpildi Linux. Cron ir dēmons, kas darbojas nepārtraukti un sāk citas programmas saskaņā ar noteiktu grafiku. Šo grafiku nosaka vairāki dažādi faili. Viņus individuāli sauc par crontabiem.





Cron var ieplānot jebkuru Unix komandu vai uzdevumu. Dažreiz jūs vēlaties strādāt ar vienkāršu komandu. Citreiz, lai veiktu visu uzdevumu, jums būs jāraksta skripts. Cron labi darbojas ar jebkuru pieeju. Tas atbalsta arī sarežģītus plānošanas noteikumus un elastīgus skripta izvades veidus.





Neatkarīgi no tā, vai veicat vienkāršus lietotāja uzdevumus vai pilnvērtīgu sistēmas administrēšanu, ir jāizprot, kā darbojas cron, izmantojot praktiskus piemērus.





1. Tīrīšana /tmp, izmantojot sistēmas plašu Crontab

The /tmp katalogs ir pagaidu vieta vispārējai lietošanai jebkurai sistēmas programmai vai lietotājam. Daudzas Unix sistēmas startēšanas laikā izdzēsīs vecos failus direktorijā /tmp. Citi plāno šo darbību, diezgan bieži izmantojot cron.

Tomēr, ja vēlaties pielāgotu kontroli pār šo procesu vai vēlaties to izmantot citā direktorijā, ātrs cron uzdevuma iestatīšana ir vienkāršs veids, kā to izdarīt.



Šeit ir viens veids, kā tīrīt /tmp vai jebkuru citu jūsu izvēlētu direktoriju:

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

Katru dienu vienu minūti pāri trijiem cron izpildīs šo komandu. Tas izmanto komandu atrast lai meklētu failus direktorijā /tmp. Tas filtrē visu, izņemot parastos failus, kas pēdējo reizi tika mainīti vismaz pirms 10 dienām. Pēc tam tas noņem visus šādus atrastos failus.





Jums vajadzētu pievienot šādu komandu globālajai crontablai, piemēram, /etc/crontab vai root crontab, izmantojot sudo crontab -e . Komandai ir jādarbojas kā root, lai tā varētu izdzēst failus /tmp neatkarīgi no tā, kam tie pieder.

Ņemiet vērā, ka šajā piemērā ir norādīts pilns atrašanas komandas ceļš. Cron izmanto pamata PATH iestatījums lai meklētu izpildāmos failus, tādēļ, ja komanda atrodas standarta vietā (piemēram /usr/bin ), tas nav īsti nepieciešams. Jūs varat norādīt alternatīvu PATH pašā crontab, ja vēlaties šo pieeju. Bet pilnīga ceļa izmantošana komandām ir nedaudz elastīgāka.





Ja strādājat pie projekta, kas raksta žurnālus vai saglabā kešatmiņā saglabātos datus, šāda veida pieeja var būt būtiska, ja dzēšat failus, lai atbrīvotu vietu diskā. Lai gan iepriekš minētais piemērs ir ātra un netīra pieeja, jums jāizmanto tāda komanda kā tmpwatch , ja tas ir pieejams.

2. Datu bāzes dublējumi divas reizes dienā

Turpmāk pievērsīsimies lietotāja uzdevumiem, kurus varat pārvaldīt, izmantojot vietējo crontab. Jūs varat rediģēt pašreizējā lietotāja crontab, izmantojot šādu komandu:

crontab -e

Šajā crontab jāietver uzdevumi, kas ir specifiski jūsu lietotāja kontam. Iedomājieties, ka strādājat pie projekta, kas ietver MySQL datu bāzes aizpildīšanu. Jūs varat izmantot mysqldump rīks, lai izveidotu visas datu bāzes SQL izmetni. Pāradresējot tā izvadi, varat izveidot vienkāršas, plānotas datu bāzes dublējumkopijas.

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

Pēc noklusējuma cron nosūta izvadi (ieskaitot kļūdas) pa e -pastu lietotājam, kuram pieder crontab fails. Bet jūs varat novirzīt izvadi tāpat kā no komandrindas, izmantojot > faila nosaukums notācija.

kā pārsūtīt tvaika ietaupījumus uz citu datoru

Ņemiet vērā, kā iepriekš minētajā piemērā tiek izmantota komandu aizstāšana, lai izveidotu faila nosaukumu, pamatojoties uz pašreizējo Unix laika zīmogu. Tāpēc ka % simbolam ir īpaša nozīme cron, komandai ir jāizvairās no tā ar iepriekšējo slīpsvītru.

3. Vietnes darbības laika pārbaude, izmantojot pielāgotu skriptu

Jūs, iespējams, pamanījāt, ka pēdējā piemēra komanda bija nepatīkami gara. Par laimi, nekas neliedz jums saglabāt komandas skriptā un izpildīt šo skriptu, izmantojot crontab. Šeit ir piemērs, kas skriptu izpilda katru minūti:

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

Ņemiet vērā, ka teorētiski varat izmantot MĀJAS mainīga vai tildes paplašināšana īsākai komandai:

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

Jūs varētu izvēlēties to nedarīt, ja cron kādreiz pārstās to atbalstīt. Pilna ceļa izmantošana nerada nekādu kaitējumu, un tas neapšaubāmi ir lasāmāks.

Skripts pats izmanto čokurošanās programmu, lai to ielādētu HTTP statusa kods norādītajam URL. Ja statuss norāda uz kaut ko citu, izņemot panākumus, skripts izvadei uzraksta ziņojumu.

Kā minēts iepriekš, cron nosūtīs mums šo rezultātu pa e -pastu. Var būt noderīgi, ja komandas cron nerada rezultātus.

#!/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. Diska vietas ziņojumi pa e -pastu

Ja vēlaties mainīt cron noklusējuma e -pasta uzvedību, varat izmantot MAILTO vides mainīgais. Cron atbalsta dažus mainīgos, kurus varat iestatīt savā crontab failā. Pēc tam Cron izmanto šos mainīgos lielumus katras nākamās komandas videi.

Lai iestatītu alternatīvu mērķa e -pasta adresi, izmantojiet šādu formātu:

MAILTO=user@example.com

Jums tas būs jāpalaiž datorā, kas ir iestatīts, lai vajadzības gadījumā nosūtītu ārēju e -pastu. Šeit ir piemērs, kas nosūtīs e -pastu citam lietotājam tajā pašā ierīcē. Tas kursē divas reizes dienā, pulksten 12:00 un 23:00. The df komanda parāda brīvu vietu diskā, tāpēc šis crontab ieraksts deleģē uzdevumu pārbaudīt, vai diska vietas izskatās labi:

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

Iegūtais e -pasts izskatīsies apmēram šādi:

Ņemiet vērā, ka cron pievieno savas pielāgotās e -pasta galvenes. Tie var būt noderīgi atkļūdošanai. Varat arī atspējot cron noklusējuma e -pasta darbības, izmantojot tukšu virkni:

MAILTO=''

5. Pārraidiet ziņojumu noteiktos laikos

Citos piemēros tiek izmantota diezgan vienkārša plānošana, taču cron atbalsta spēcīgu laika specifikāciju sintaksi. Tas apstrādā ne tikai precīzas atbilstības, bet arī:

  • Vairākas vērtības, atdalītas ar komatu ( , )
  • Diapazoni, kas norādīti ar defisi ( - )
  • Soļu vērtības pēc slīpsvītras uz priekšu ( / )

Tā, piemēram, ja vēlaties nosūtīt ziņojumu visiem lietotājiem, kuri ir pieteikušies, divas reizes stundā darba laikā, bet tikai ik pēc trim stundām, pietiek ar kaut ko līdzīgu:

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

Šī komanda tiks izpildīta 15 un 45 minūtes pēc stundas, ik pēc trim stundām no pulksten 9:00 līdz 17:00. Sienas komanda nosūta ziņojumu katram pieteicies termināļa lietotājam.

Jūs pat varētu atklāt, ka cron piedāvā elastīgāku plānošanu nekā jūsu kalendāra lietotne. Daži varianti ļauj norādīt komandas, kas jāizpilda mēneša otrajā piektdienā vai noteiktā datumā vistuvākajā darba dienā.

Cron var automatizēt daudzu veidu Linux uzdevumus

Šī ir neliela uzdevumu veida izvēle, ko cron var palīdzēt automatizēt. Var paiet zināms laiks, lai iejustos sarežģītajā sintaksē, taču cron ir spēcīga utilīta. Jūs varat izmantot cron gan sistēmas mēroga uzdevumiem, gan lietotājam specifiskiem uzdevumiem.

Ar sarežģītu plānošanas sintaksi cron ir spēcīgs, taču jums, iespējams, vajadzētu būt labai atsaucei. Crontabs atļauj komentēt, tāpēc, iespējams, vēlēsities savā komentāru rindiņā iekļaut laika laukus.

Kopīgot Kopīgot Čivināt E -pasts Kā izmantot Crontab, lai automatizētu atkārtotus uzdevumus Linux

Vai vēlaties ietaupīt laiku un automatizēt galvenos procesus Linux? Crontab ir atbilde.

Lasīt Tālāk
Saistītās tēmas
  • Linux
  • Datoru automatizācija
  • Uzdevumu automatizācija
  • Linux komandas
Par autoru Bobijs Džeks(58 raksti publicēti)

Bobijs ir tehnoloģiju entuziasts, kurš gandrīz divus gadu desmitus strādāja par programmatūras izstrādātāju. Viņš aizraujas ar spēlēm, strādā par atsauksmju redaktoru žurnālā Switch Player un ir iedziļinājies visos tiešsaistes publicēšanas un tīmekļa izstrādes aspektos.

lejupielādēt bezmaksas filmas savā tālrunī
Vairāk no Bobija Džeka

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu