Deall a Defnyddio Cron: Canllaw Cynhwysfawr i Swyddi Amserlen
cron, yn fyr am gorchymyn rhedeg ar-lein, yn drefnydd swyddi pwerus sy'n seiliedig ar amser mewn systemau gweithredu tebyg i Unix. Y term cron yn ddrama ar y gair Kronos or Chronos, sydd ym mytholeg Groeg yn cynrychioli amser. Mae'r enw cron ar gyfer y rhaglennydd swyddi seiliedig ar amser yn adlewyrchu ei swyddogaeth o amserlennu a chyflawni tasgau ar adegau neu gyfnodau penodol, gan ei wneud yn gyfeiriad priodol at y cysyniad o amser mewn mytholeg.
Mae Cron yn caniatáu ichi awtomeiddio tasgau ailadroddus, gweithredu sgriptiau ar adegau penodol, a chynnal effeithlonrwydd system. Bydd y canllaw cynhwysfawr hwn yn eich tywys trwy bopeth sydd angen i chi ei wybod am cron, o osod i ddefnydd, geirfa allweddol, a samplau cod go iawn.
Tabl Cynnwys
- Beth yw cron?
- Gosod Cron
- Cysyniadau a Therminoleg Sylfaenol
- Cystrawen Cron
- Enghreifftiau ac Achosion Defnydd
- Peryglon Cyffredin ac Arferion Gorau
- Adnoddau cron ychwanegol
Beth yw Cron?
Daemon (proses gefndir) yw Cron sy'n rhedeg ar systemau sy'n seiliedig ar Unix, gan gynnwys Linux a macOS. Ei brif bwrpas yw cyflawni tasgau a drefnwyd yn awtomatig. Gall y tasgau hyn amrywio o sgriptiau syml i gynnal a chadw systemau a gwneud copïau wrth gefn.
Gosod Cron
Yn y rhan fwyaf o systemau tebyg i Unix, mae cron wedi'i osod ymlaen llaw. Gallwch wirio ei argaeledd trwy agor terfynell a theipio:
crontab -e
Os yw'r gorchymyn hwn yn agor golygydd tabl cron, mae cron wedi'i osod gennych. Os na, gallwch ei osod gan ddefnyddio rheolwr pecyn eich system. Er enghraifft, ar Ubuntu, gallwch ddefnyddio:
sudo apt-get install cron
Cysyniadau a Therminoleg Cron
Cyn plymio i ddefnydd cron, gadewch i ni ddeall rhai cysyniadau a therminoleg hanfodol:
- crontab: Byr ar gyfer bwrdd cron, mae'n ffeil sy'n cynnwys y rhestr o dasgau a drefnwyd ar gyfer defnyddiwr.
- Cronjob: Un dasg neu orchymyn wedi'i amserlennu i redeg ar amser penodol.
- caeau: Mae gan bob cronjob bum maes sy'n diffinio pryd mae'r swydd yn rhedeg:
- Cofnod (0-59)
- Awr (0-23)
- Diwrnod y mis (1-31)
- Mis (1-12)
- Diwrnod yr wythnos (0-7, lle mae 0 a 7 yn cynrychioli dydd Sul)
Cystrawen Cron
Mae deall cystrawen cofnod crontab yn hollbwysig. Mae'n dilyn y patrwm:
* * * * * command-to-be-executed
Dyma esboniad â sylwadau y gallwch ei fewnosod yn eich swydd 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
Mae pob seren (*) yn cynrychioli maes yn y mynegiad cron. Er enghraifft, i drefnu swydd bob dydd am 3:30 PM, byddech chi'n defnyddio:
30 15 * * * command-to-be-executed
Enghreifftiau Cron ac Achosion Defnydd
Gadewch i ni archwilio rhai enghreifftiau ymarferol i ddangos defnydd cron:
- Rhedeg Sgript Dyddiol: I weithredu sgript bob dydd am hanner nos, gallwch ddefnyddio:
0 0 * * * /path/to/script.sh
- Rhedeg Sgript Bob Awr: Ar gyfer tasg bob awr, defnyddiwch:
0 * * * * /path/to/script.sh
- Copi wrth gefn wythnosol: I drefnu copi wrth gefn wythnosol ar ddydd Sul am 2 AM, defnyddiwch:
0 2 * * 0 /path/to/backup-script.sh
- Cynnal Tasg ar Fisoedd Penodol: I redeg swydd yn unig ym mis Ionawr a mis Gorffennaf am 8:30 AM:
30 8 * 1,7 * /path/to/script.sh
Peryglon Cron ac Arferion Gorau
- Newidynnau Amgylcheddol: Sicrhewch fod eich swyddi cron yn sefydlu'r newidynnau amgylchedd angenrheidiol, gan nad yw swyddi cron yn etifeddu newidynnau amgylchedd eich cragen.
- Caniatadau: Gwnewch yn siŵr eich bod yn gosod y caniatâd i'ch ffeil sgript fel gweithredadwy. Bob tro y byddwn yn ail-gadw fy sgript, byddwn yn gweld bod angen gosod fy nghaniatadau eto!
- Newidynnau Llwybr: Nodwch y llwybr llawn i executables a sgriptiau o fewn eich swyddi cron er mwyn osgoi problemau gyda llwybrau cymharol.
- Profi: Profwch nhw mewn amgylchedd diogel cyn sefydlu swyddi cron critigol i sicrhau eu bod yn gweithio yn ôl y disgwyl.
- Logio: Ailgyfeirio allbwn eich swyddi cron i ffeil log i olrhain eu gweithrediad ac unrhyw wallau posibl.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Mae'r swydd cron hon yn rhedeg sgript /path/to/script.sh
bob dydd am hanner nos, ac mae'r allbwn (stdout a stderr) a gynhyrchir gan y sgript wedi'i atodi i'r ffeil log
/path/to/cron.log
. Mae hwn yn arfer cyffredin i ddal a chofnodi allbwn swyddi cron at ddibenion monitro a datrys problemau. Gadewch i ni ddadansoddi'r gystrawen swydd cron benodol hon:
- *0 0 * *: Mae'r rhan hon yn diffinio'r amserlen ar gyfer pryd y dylai'r swydd cron redeg. Yn yr achos hwn, mae wedi'i amserlennu i redeg bob dydd am hanner nos (0 munud wedi 0 awr).
- /path/to/script.sh: Dyma'r gorchymyn neu'r sgript i'w weithredu pan fydd y swydd cron yn rhedeg. Mae'r enghraifft hon yn dangos sgript wedi'i lleoli yn
/path/to/script.sh
. - >> /path/to/cron.log: Mae'r rhan hon yn ailgyfeirio allbwn safonol (stdout) y swydd cron i ffeil log a enwir
cron.log
wedi'i leoli yn/path/to/
. Mae>>
gweithredwr yn atodi'r allbwn i'r ffeil log, felly os nad yw'r ffeil yn bodoli, bydd yn cael ei greu, ac os yw'n bodoli eisoes, bydd yr allbwn yn cael ei ychwanegu at ddiwedd y ffeil. - 2> & 1: Defnyddir hwn ar gyfer ailgyfeirio allbwn safonol (stdout) a gwall safonol (stderr) i'r un ffeil log. Mae'r
2
yn cynrychioli stderr, a'r1
yn cynrychioli stdout. Felly,2>&1
yn golygu bod stdout a stderr yn cael eu hailgyfeirio i'r un ffeil log a nodwyd yn gynharach.
Mae Cron yn offeryn gwerthfawr ar gyfer awtomeiddio tasgau ar systemau sy'n seiliedig ar Unix. Gyda'i opsiynau amserlennu hyblyg, gall symleiddio gweinyddiaeth system a gwella effeithlonrwydd. Trwy ddeall ei chystrawen a dilyn arferion gorau, gallwch harneisio pŵer cron i awtomeiddio'ch tasgau arferol yn effeithiol.
Adnoddau Cron Ychwanegol
- Daemon Unix - Dean Wilson