Izmantojiet crontab Linux komandas priekšrocības, lai automatizētu dažādus ikdienišķus un atkārtotus uzdevumus, vienkāršojot savu dzīvi. Šis izcilais un viegli lietojamais rīks apvienojumā ar dažiem skriptiem var ne tikai automatizēt visu veidu uzdevumus, bet arī palīdzēt izvairīties no vienkāršām cilvēku kļūdām vai aizmāršības.

Šeit jūs uzzināsiet, kas ir crontab, kā pievienot automatizētus darbus, kā arī dažus piemērus reālajā pasaulē.

Kas ir Crontab?

Crontab ir dēmona process, kas darbojas fonā gandrīz visās Linux mašīnās un tiek izmantots, lai ieplānotu un izpildītu automatizētus uzdevumus noteiktā laika intervālā. To bieži izmanto arī programmatūras izstrādātāji, lai fonā izpildītu laikietilpīgus uzdevumus.

Tas var būt jebkas, ieskaitot, bet neaprobežojoties ar sērijveida e-pasta ziņojumu sūtīšanu, jūsu Twitter plūsmas pārbaudi, dublējumu veikšanu vai vienkārši atgādinājuma veikšanu.

Crontab pamata komandas

Katram Linux lietotājam mašīnā ir savs crontab fails, kurā ir viņu aktīvie crontab darbi. Šeit ir dažas pamata termināla komandas, kuras izmantosiet, lai apskatītu un modificētu crontab failu:

instagram viewer

  • crontab-l Uzskaitiet visus crontab darbus.
  • crontab -e Rediģējiet crontab failu.
  • crontab -r Noņemiet visus ierakstus no crontab faila.

Iepriekš minētās komandas būs domātas pašreizējā lietotāja crontab fails. Ja jums ir jāmaina cita lietotāja crontab fails, vienkārši izmantojiet -u opcija. Piemēram, varat rediģēt jdoe lietotāja crontab fails ar komandu:

Ubuntu Linux: pievienojiet un noņemiet lietotājus grupām

Vai vēlaties labāk pārvaldīt Ubuntu Linux lietotājus? Atbilde ir izveidot grupas, pēc tam izmantot Ubuntu lietotāja pievienošanas funkciju.

sudo crontab -ujdoe -e

Crontab darbu formāts

Katrs crontab darbs sastāv no vienas rindas un ir formatēts šādi:

MINUTES STUNDA DIENAS MĒNEŠA NEDĒĻAS DIENAS KOMANDA

Zemāk esošajā tabulā ir izskaidroti dažādi crontab darba elementi:

Elements Ranage Apraksts
Minūte 0 - 59 Minūte, lai veiktu crontab darbu plkst.
Stunda 0 - 23 Stunda, lai pabeigtu kronšteina darbu plkst.
Diena 1 - 31 Mēneša diena, lai veiktu crontab darbu plkst.
Mēnesis 1 - 12 Mēnesis, kad jāizpilda crontab darbs plkst.
Darba diena 0 - 6 Nedēļas diena, lai veiktu crontab darbu plkst.
Komanda Jebkura Linux komanda, kuru varat izpildīt terminālā.

Jebkurā laukā varat izmantot zvaigznīti (*), lai apzīmētu aizstājējzīmi, tas nozīmē, ka crontab darbs tiks izpildīts neatkarīgi no šī laika perioda. Piemēram, zemāk redzamais darbs tiks izpildīts katru vakaru tieši pulksten 3:20:

20 3 * * * /root/backup.sh

Vairākas vērtības

Katrā laika periodā var būt arī vairāki elementi. Precīzas vērtības varat norādīt, atdalot tās ar komatu, un zemāk redzamais darbs tiks izpildīts katru stundu pēc 20 un 50 minūtēm pēc stundas:

20,50 * * * * /path/to/command.sh

Tomēr, ja vēlaties izmantot crontab darbu ar noteiktiem intervāliem laika periodā, kuru varat izmantot * / PERIODS, un zemāk redzamais kopdarbs tiks automātiski izpildīts 15 minūtes pēc stundas ik pēc trim stundām:

15 * / 3 * * * /path/to/command.sh

Saglabājiet Crontab Jobs klusu

Atkarībā no tā, iespējams, vēlēsities izslēgt visu izvadi no kopdarba darbiem, lai tie nenonāktu jūsu sistēmas pasta mapē. To var izdarīt, pievienojot > / dev / null 2> & 1 uz jebkuru crontab darbu. Piemēram:

0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1

Pievienojot Crontab Jobs

Parasti visbiežāk izmantotā metode crontab darbu pievienošanai vai modificēšanai ir crontab -e komandu. Palaidiet šo komandu terminālā:

crontab -e

Tas atvērs a teksta redaktors piemēram, nano ar jūsu crontab faila saturu. Katrs crontab darbs atrodas vienā rindā, un jūs varat pievienot, modificēt un noņemt līnijas pēc vēlēšanās. Kad tas izdarīts, saglabājiet un aizveriet failu, nospiežot Ctrl + W, kam seko un Enter taustiņi, kas nekavējoties aktivizēs visus crontab darbus failā.

Saīsne, lai pievienotu darbavietas

Tā vietā, lai manuāli modificētu crontab failu, ir ātra viena komanda, kuru varat palaist, lai pievienotu darbu. Piemēram, ja vēlaties pievienot šo crontab darbu, kas darbojas katru svētdienu pulksten 14:00:

0 14 * * 0 /path/to/command.sh

Darbu var pievienot crontab failam ar vienu komandu:

(crontab -l; atbalss "0 14 * * 0 /path/to/command.sh";) | crontab

Iepriekš minētā komanda vienkārši uzskaita visus darbus, kas pašlaik atrodas jūsu crontab failā, izdrukā jauno darbu un visu ievada crontab aizstājot tā saturu.

Crontab faila uzskaitīšana / noņemšana

Visus crontab failā pašlaik aktīvos darbus varat uzskaitīt ar komandu:

crontab -l

Varat arī noņemt visus crontab darbus un iztukšot crontab faila saturu, izmantojot komandu:

crontab -r

Piemērs: atskaņojiet skaņas!

Strādājot ir nepieciešams ātrs atgādinājums ik pēc divām stundām, lai jūs informētu, ka laiks ir pagājis? Paņemiet savu iecienīto audio klipu gandrīz jebkurā formātā (.wav, .mp4, jebkas cits) un, ja tas ir saglabāts vietnē (piemēram) /home/myuser/myalert.wav vai tas tiek automātiski atskaņots ar crontab darbu:

0 * / 2 * * * aplay /home/myuser/myalert.wav

Kā būtu ar jauku nedēļas izsūtīšanu, kad jūsu iecienītākā dziesma automātiski skan katru piektdienas pēcpusdienu pulksten 17:00? Paņemiet savu iecienīto dziesmas klipu un, ja tas tiek saglabāts, teiksim /home/myuser/friday_song.mp4 jūs pievienotu crontab darbu:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Piemērs: dublēšanas faili ar Rsync

Viens no daudzajiem lieliskajiem crontab izmantošanas veidiem ir iespēja automātiski dublēt failus attālajā serverī. Ievērojami samaziniet risku kādreiz zaudēt svarīgus datus lieliska rsync apmācība.

Piemērs: pārbaudiet, vai vietnes ir tiešsaistē

Varbūt jūs vēlaties ik pēc piecām minūtēm automātiski pārbaudīt, vai dažādas vietnes ir vai nav tiešsaistē, un paziņot pa e-pastu, ja kāda no tām nedarbojas. Šeit ir veikls mazais PHP skripts, kas to darīs.


php
// E-pasta adrese, lai paziņotu par vietnēm, kas atrodas
$ email = '[email protected]';
// Definējiet vietrāžus URL, lai pārbaudītu
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Pārlūkojiet vietrāžus URL
$ down = [];
foreach ($ urls kā $ url) {
// Pārbaudiet URL
$ status = check_url ($ url);
ja ($ statuss! = 200) {
$ uz leju [] = $ url;
}
}
// Sūtīt e-pastu, ja mums ir mazāk vietņu
if (skaits ($ uz leju)> 0) {
pasts ($ e-pasts, "Steidzami - Vietnes uz leju!", "Jūsu robots ir atklājis, ka šādas vietnes ir pašlaik nolaists:
". implode ("
", $ uz leju));
}
// Iziet
iziet (0);
/ **
* Pārbaudiet URL < br /> * /
funkcija check_url (virkne $ url): int
{
// Sūtīt caur cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Iegūt statusu un aizvērt savienojumu
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Vienkārši modificējiet e-pasta adresi un vēlamos URL, lai pārbaudītu faila augšdaļā, un saglabājiet to kaut kur, piemēram, /home/myuser/check_sites.php . Lai šis skripts tiktu palaists ik pēc piecām minūtēm un pa e-pastu jūs informētu par visām vietnēm, kuras nav pieejamas, pievienojiet crontab darbu:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Automatizējiet savu dzīvi!

Ar šo rakstu jūs cerams, būs sapratis crontab automatizācijas spēku un to, kā to var izmantot, lai automatizētu daudzus ikdienišķus un atkārtotus uzdevumus dzīve.

Jūs esat uzzinājis, kas ir crontab, par crontab failu, kā tiek formatēti crontab darbi, un daži reālās pasaules piemēri, kā to var izmantot.

4 Linux automatizācijas lietotnes, lai pilnveidotu uzdevumus un darbplūsmas

Vai vēlaties ietaupīt laiku un izvairīties no atkārtotiem uzdevumiem? Atbilde ir automatizācija! Šeit ir dažas noderīgas izmēģināt Linux darbvirsmas automatizācijas lietojumprogrammas.

Saistītas Tēmas
  • Programmēšana
  • Linux
Par Autors
Mets Dizaks (13 raksti Publicēts)
Vairāk no Matt Dizak

Abonēt mūsu Biļetens

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viena darbība!!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastu, kuru tikko nosūtījām.

.