Kuptimi dhe përdorimi i Cron: Një Udhëzues Gjithëpërfshirës për të Programuar Punët
Cron, shkurt per komanda ekzekutohet në internet, është një programues i fuqishëm i punës i bazuar në kohë në sistemet operative të ngjashme me Unix. Termi cron është një lojë me fjalën kronos or Chronos, që në mitologjinë greke përfaqëson kohën. Emri cron për planifikuesin e punës së bazuar në kohë pasqyron funksionin e tij të planifikimit dhe ekzekutimit të detyrave në kohë ose intervale specifike, duke e bërë atë një referencë të përshtatshme për konceptin e kohës në mitologji.
Cron ju lejon të automatizoni detyrat e përsëritura, të ekzekutoni skriptet në intervale specifike dhe të ruani efikasitetin e sistemit. Ky udhëzues gjithëpërfshirës do t'ju përcjellë gjithçka që duhet të dini për cron, nga instalimi te përdorimi, fjalori kryesor dhe mostrat e kodit real.
Përmbajtje
- Çfarë është cron?
- Instalimi i Cron
- Konceptet bazë dhe terminologjia
- Cron Sintaksa
- Shembuj dhe raste përdorimi
- Grackat e zakonshme dhe praktikat më të mira
- Burime shtesë të cron
Çfarë është Cron?
Cron është një daemon (proces në sfond) që funksionon në sistemet e bazuara në Unix, duke përfshirë Linux dhe macOS. Qëllimi i tij kryesor është të ekzekutojë automatikisht detyrat e planifikuara. Këto detyra mund të variojnë nga skriptet e thjeshta deri te mirëmbajtja e sistemit dhe kopjet rezervë.
Instalimi i Cron
Në shumicën e sistemeve të ngjashme me Unix-in, cron është i instaluar paraprakisht. Mund të kontrolloni disponueshmërinë e tij duke hapur një terminal dhe duke shtypur:
crontab -e
Nëse kjo komandë hap redaktuesin e tabelës cron, ju keni instaluar cron. Nëse jo, mund ta instaloni duke përdorur menaxherin e paketave të sistemit tuaj. Për shembull, në Ubuntu, mund të përdorni:
sudo apt-get install cron
Konceptet dhe terminologjia e Cron
Para se të zhytemi në përdorimin e cron, le të kuptojmë disa koncepte dhe terminologji thelbësore:
- krontab: Shkurt per tavolina cron, është një skedar që përmban listën e detyrave të planifikuara për një përdorues.
- Cronjob: Një detyrë ose komandë e vetme e planifikuar të ekzekutohet në një kohë të caktuar.
- Fushat: Çdo cronjob ka pesë fusha që përcaktojnë se kur funksionon puna:
- Minuta (0-59)
- Ora (0-23)
- Dita e muajit (1-31)
- Muaj (1-12)
- Dita e javës (0-7, ku edhe 0 edhe 7 përfaqësojnë të dielën)
Cron Sintaksa
Kuptimi i sintaksës së një hyrjeje crontab është thelbësor. Ai ndjek modelin:
* * * * * command-to-be-executed
Këtu është një shpjegim i komentuar që mund të futni në punën tuaj të cron:
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
Çdo yll (*) paraqet një fushë në shprehjen cron. Për shembull, për të planifikuar një punë çdo ditë në orën 3:30, do të përdorni:
30 15 * * * command-to-be-executed
Shembuj Cron dhe raste përdorimi
Le të shqyrtojmë disa shembuj praktikë për të ilustruar përdorimin e Cron:
- Ekzekutimi i një skenari çdo ditë: Për të ekzekutuar një skenar çdo ditë në mesnatë, mund të përdorni:
0 0 * * * /path/to/script.sh
- Ekzekutimi i një skenari çdo orë: Për një detyrë për orë, përdorni:
0 * * * * /path/to/script.sh
- Rezervimi javor: Për të planifikuar një kopje rezervë javore të dielave në orën 2 të mëngjesit, përdorni:
0 2 * * 0 /path/to/backup-script.sh
- Kryerja e një detyre në muaj të caktuar: Për të drejtuar një punë vetëm në janar dhe korrik në orën 8:30:
30 8 * 1,7 * /path/to/script.sh
Grackat e Cron dhe praktikat më të mira
- Variablat e mjedisit: Sigurohuni që cron jobs tuaj të vendosë variablat e nevojshme të mjedisit, pasi punët cron nuk trashëgojnë variablat e mjedisit të shell-it tuaj.
- Permissions: Sigurohuni që të vendosni lejet për skedarin tuaj të skriptit si të ekzekutueshëm. Sa herë që do ta ruaja përsëri skenarin tim, do të gjeja që lejet e mia duhet të vendoseshin përsëri!
- Variablat e rrugës: Specifikoni shtegun e plotë drejt ekzekutuesve dhe skripteve brenda detyrave tuaja të cron për të shmangur problemet me shtigjet përkatëse.
- Testim: Provoni ato në një mjedis të sigurt përpara se të vendosni punë kritike të cron për t'u siguruar që ata të punojnë siç pritej.
- Prerje-transportim trupash: Ridrejtoni daljen e punëve tuaja cron në një skedar log për të gjurmuar ekzekutimin e tyre dhe çdo gabim të mundshëm.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Kjo punë cron ekzekuton një skenar /path/to/script.sh
çdo ditë në mesnatë, dhe dalja (si stdout ashtu edhe stderr) e gjeneruar nga skripti i shtohet skedarit log
/path/to/cron.log
. Kjo është një praktikë e zakonshme për të kapur dhe regjistruar rezultatet e punëve të cron për qëllime të monitorimit dhe zgjidhjes së problemeve. Le të zbërthejmë këtë sintaksë specifike të punës cron:
- *0 0 * * *: Kjo pjesë përcakton orarin se kur duhet të ekzekutohet puna e cron. Në këtë rast, është planifikuar të funksionojë çdo ditë në mesnatë (0 minuta e 0 orë).
- /path/to/script.sh: Kjo është komanda ose skripti për t'u ekzekutuar kur ekzekutohet puna e cron. Ky shembull tregon një skript të vendosur në
/path/to/script.sh
. - >> /path/to/cron.log: Kjo pjesë ridrejton daljen standarde (stdout) të punës cron në një skedar log të quajtur
cron.log
që ndodhet në/path/to/
.>>
operatori shton daljen në skedarin log, kështu që nëse skedari nuk ekziston, ai do të krijohet, dhe nëse ekziston tashmë, dalja do të shtohet në fund të skedarit. - 2> & 1: Kjo përdoret për ridrejtimin e daljes standarde (stdout) dhe gabimit standard (stderr) në të njëjtin skedar log. Të
2
përfaqëson stderr, dhe1
përfaqëson stdout. Kështu që,2>&1
do të thotë që të dy stdout dhe stderr ridrejtohen në të njëjtin skedar log të specifikuar më parë.
Cron është një mjet i vlefshëm për automatizimin e detyrave në sistemet e bazuara në Unix. Me opsionet e tij fleksibël të planifikimit, ai mund të thjeshtojë administrimin e sistemit dhe të përmirësojë efikasitetin. Duke kuptuar sintaksën e tij dhe duke ndjekur praktikat më të mira, ju mund të shfrytëzoni fuqinë e cron për të automatizuar detyrat tuaja rutinë në mënyrë efektive.
Burime shtesë të Cron
- Unix Daemon - Dean Wilson