Cron & crontab, shpjegoi

Lucaine ai botoi pak me pare tutorial i shkëlqyeshëm për cron dhe crontab që mendoj se ia vlen të ndahet. Cron është një lloj ekuivalent me Detyrat e Planifikuara në Windows, vetëm se trajtohet nga terminali. Ata që preferojnë një ndërfaqe vizuale për të arritur të njëjtin qëllim, mund ta shohin këtë një artikull tjetër.

Çfarë është cron?

Emri cron vjen nga greqishtja chronos që do të thotë "kohë". Në sistemin operativ Unix, cron është një menaxher i rregullt i procesit të sfondit (daemon) që ekzekuton procese ose skripta në intervale të rregullta (për shembull, çdo minutë, ditë, javë ose muaj). Proceset që duhet të ekzekutohen dhe koha në të cilën ato duhet të ekzekutohen specifikohen në skedarin crontab.

Si funksionon

Cron daemon fillon nga /etc/rc.d/ o /etj/init.d në varësi të shpërndarjes. Cron ekzekutohet në sfond, kontrollon tryezën e detyrave të crontab çdo minutë / etj / crontab në / var / rrotull / cron në kërkim të detyrave që duhen realizuar. Si përdorues mund të shtojmë komanda ose skripta me detyra për të cron për të automatizuar disa procese. Kjo është e dobishme për shembull për të automatizuar azhurnimin e një sistemi ose të një sistemi të mirë rezervë.

Artikulli i lidhur:
Udhëzues: Instalo paketat .tar.gz dhe .tar.bz2

Çfarë është Crontab?

Crontab është një skedar i thjeshtë teksti që ruan një listë të komandave që do të ekzekutohen në një kohë të specifikuar nga përdoruesi. Crontab do të kontrollojë datën dhe kohën kur skenari ose komanda duhet të ekzekutohet, lejet e ekzekutimit dhe do ta bëjë atë në sfond. Secili përdorues mund të ketë skedarin e tij crontab, në fakt / etj / crontab Supozohet të jetë skedari crontab i përdoruesit rrënjë, kur përdoruesit normalë (dhe madje edhe root) duan të gjenerojnë skedarin e tyre crontab atëherë ne do të përdorim komandën crontab.

Crontab është mënyra më e lehtë për të menaxhuar detyrat e cron në sistemet me shumë përdorues, ose si një përdorues i thjeshtë i sistemit ose përdorues i rrënjës.

Përdorimi i crontab

Po fillojmë me një shembull të thjeshtë.

Ne do të automatizojmë azhurnimin e një sistemi, për të eleminuar bezdisjen e "Unë gjithmonë duhet të azhurnoj dhe nuk më pëlqen kjo!"

si për të
Artikulli i lidhur:
Komandat për të njohur sistemin (identifikoni harduerin dhe disa konfigurime softuerësh)

Para së gjithash ne do të bëjmë një skenar. Ky skript do të thirret me cron dhe do të përmbajë të gjitha udhëzimet që duam të bëjë, prandaj është e nevojshme ta provoni atë në disa raste dhe në disa mënyra para se ta përfshini në cron, një skenar i thjeshtë azhurnimi si ky:

#! / bin / bash # shembulli i azhurnimit të skriptit # zgjidh shpërndarjen tënde # debian-ubuntu # azhurnimi i apt-marrjes & azhurnimi i apt-get -y #fedora # azhurnimi yum-yt # Arch #pacman --noconfirm -Syu

Hiqni # nga linja juaj distro. Në rast se është Ubuntu / Debian, fillon me apt-get.

Ne e ruajmë skenarin si update.sh (p.sh. direktoria e skripteve shtëpinë tuaj). Ne ndryshojmë lejet e ekzekutimit të skenarit të përmendur me:

chmod a + x ~ / skriptet / azhurnimi.sh

Ne e ekzekutojmë skriptin disa herë për të verifikuar që gjithçka funksionon normalisht, ne modifikojmë atë që është e nevojshme (nuk duhet të përmbajë gabime, nëse jo cron do të përsërisë vetëm një gabim pa pushim). Tani për të shtuar detyrën në crontab tonë.

Shto detyra në crontab

Ne ekzekutojmë botimin e crontab me crontab -e, në disa distros (si ubuntu) na jep mundësinë të zgjedhim redaktuesin e tekstit që duam, pjesën tjetër na mbetet vi. Skedari crontab do të duket diçka e tillë.

# mh dom komanda e përdoruesit

ku:

  • m korrespondon me minutën kur skenari do të ekzekutohet, vlera varion nga 0 në 59
  • h koha e saktë, trajtohet formati 24-orësh, vlerat variojnë nga 0 në 23, me 0 që është 12:00 mesnatë.
  • dom i referohet ditës së muajit, për shembull mund të specifikoni 15 nëse doni të vraponi çdo 15 ditë
  • Dow do të thotë dita e javës, mund të jetë numerike (0 deri 7, ku 0 dhe 7 janë e diela) ose 3 shkronjat e para të ditës në anglisht: mon, tue, wed, thu, fri, sat, sun.
  • përdorues përcakton përdoruesin i cili do të ekzekutojë komandën, mund të jetë root, ose një përdorues tjetër për sa kohë që ata kanë leje për të ekzekutuar skriptin.
  • komandë i referohet komandës ose rrugës absolute të skenarit që do të ekzekutohet, shembull: /home/usuario/scriptts/actualizar.sh, nëse e quan një skenar, duhet të ekzekutohet

Për të qenë të qartë disa shembuj të detyrave të cronit të shpjeguara:

15 10 * * * përdoruesi /home/user/scripts/update.sh

Do të ekzekutojë skriptin e update.sh në 10:15 çdo ditë

15 22 * * * përdoruesi /home/user/scripts/update.sh

Do të ekzekutojë skriptin e update.sh në 10:15 pasdite çdo ditë

00 10 * * 0 azhurnim root apt-get -y Përdorues i rrënjës

Do të zhvillojë një azhurnim çdo të Dielë në 10:00 të mëngjesit

45 10 * * azhurnimi i rrënjës së diellit apt-get -y

Përdoruesi i rrënjës do të ekzekutojë një azhurnim çdo të Dielë (Diell) në 10:45 të mëngjesit

30 7 20 11 * përdoruesi /home/usuario/scripts/update.sh

Më 20 nëntor në orën 7:30 përdoruesi do të ekzekutojë skenarin

30 7 11 11 përdorues dielli /home/usuario/scripts/pastel_con_velitas.sh

Më 11 nëntor në 7:30 të mëngjesit dhe kjo është e diela, përdoruesi do të festojë sysadmin e tij (domethënë unë)

01 * * * * përdoruesi /home/usuario/scripts/molestorecordatorio.sh

Një kujtesë e bezdisshme çdo minutë e çdo orë çdo ditë (NUK rekomandohet).

Ato ende mund të trajtohen vargjet speciale:

30 17 * * 1,2,3,4,5

Në orën 5:30 të pasdites çdo ditë nga e hëna në të premte.

00 12 1,15,28 * *

Në 12 të mesditës çdo të parë, pesëmbëdhjetë dhe 28 të çdo muaji (ideal për listën e pagave)

Nëse kjo është konfuze, trajton crontab vargjet speciale për të përcaktuar këto diapazone.

@reboot Vrapo një herë, në fillim
@ fillon herët vetëm një herë në vit: 0 0 1 1 *
@ çdo vit njësoj si @ herët
@mujore ekzekutohet një herë në muaj, ditën e parë: 0 0 1 * *
@ çdo javë Javë minutën e parë të orës së parë të javës. 0 0 * * 0.
@ditë çdo ditë, në 12:00 A.M. 0 0 * * *
@ mesnate njelloj si @daily
@ orë në minutën e parë të çdo ore: 0 * * * *

Përdorimi i tij është shumë i thjeshtë.

@ përdorues në orë /home/user/scripts/molestorecordatorio.sh @ përdorues mujor /home/user/scripts/backup.sh @ përditësim root apt-get update && apt-get -y upgrade

E fundit por jo më pak e:

Menaxhimi i punës në Cron

skedari crontab

Zëvendësoni skedarin ekzistues crontab me një skedar të përcaktuar nga përdoruesi

crontab -e

Redaktoni skedarin crontab të përdoruesit, çdo rresht i ri do të jetë një detyrë e re crontab.

crontab -l

Renditni të gjitha detyrat e përdoruesit crontab

crontab -d

Fshi crontab-in e përdoruesit

crontab -c drejt

Përcakton direktorinë crontab të përdoruesit (kjo duhet të ketë leje të përdoruesit për të shkruar dhe ekzekutuar)

crontab -u përdorues

parashtesa për të trajtuar crontab-in e një përdoruesi tjetër, shembuj:

$ sudo crontab -l -u rrënjë $ sudo crontab -e përdorues2 #crontab -d -u përdorues

Ky mjet, si shumë të tjerë, mund të shihet më thellë dhe më në detaje në:

Faleminderit Lucain!