Cron- ի աշխատանքը տիրապետելը և հիմնական սերվերի առաջադրանքների ավտոմատացումը

Վեբ հոստինգը նախատեսված է հեշտ, պարզ և կատարյալ այն մասնագետի համար, ով գործի է անցնում և պարզապես չի կարող յուրաքանչյուր օրվա յուրաքանչյուր ժամ նվիրել իրենց հոստինգի սերվերին և հարակից խնդիրներին:.


Այդ նպատակով, Unix- ի կամ Linux- ի վրա հիմնված գրեթե յուրաքանչյուր սերվեր առաջարկում է առաջադրանքների ավտոմատ կառավարիչ, որը հայտնի է որպես «Cron Job» կամ «Crontab»:

Ծրագրային ապահովման այս ծրագիրը նման է Microsoft Windows- ի առաջադրանքի ժամանակացույցի, քանի որ նրան կարելի է ասել, որ որոշակի ժամանակահատվածում որոշակի գործեր է կատարում ՝ օգտագործողին խնայելով այդ առաջադրանքները ձեռքով կատարելուց: Սա հատկապես կարևոր է, երբ հաշվի առնենք, որ շատ սերվերի սովորական սպասարկում, պահուստավորում և կապի ընթացակարգեր կարող են կատարվել ժամեր և ժամեր: Մարդկանց մեծամասնությունը պարզապես ցանկանում է օր օր հետո տուն գնալ գրասենյակ և հանգստանալ, այլ ոչ թե իրենց երեկոն անցկացնել ֆայլերի կրկնօրինակում և կապեր կառավարել:.

Այդ մարդիկ հաջողություն ունեն, քանի որ յուրաքանչյուր խնդիր կարող է պլանավորվել ամենօրյա, շաբաթական կամ ամսական կտրվածքով, կամ նույնիսկ առանձին դեպքերում, որոշ դեպքերում, և հատուկ հրահանգներ կարող են տրվել սերվերին Crontab կոմունալ ծրագրի շրջանակներում, թե ինչպես կատարել առաջադրանքը , ինչպես իմանալ, թե երբ է այն ավարտված, և ինչ անել, երբ իրականում ավարտված է առաջադրանքը.

Օգտագործողները կկարողանան հանգստանալ, մինչդեռ իրենց սերվերը ժամերով անում է ծանր ծանրաբեռնվածությունը. կամ նրանք պարզապես կարող են պլանավորել աշխատանքը ավարտին հասցնել, մինչդեռ նրանք դժվար են իրենց աշխատասենյակներում: Քանի որ դա ավտոմատացված է, Cron- ի աշխատանքը կարող է առաջանալ օրվա գրեթե ցանկացած ժամի.

Սովորելով պատմել ժամանակը ՝ օգտագործելով Cron- ի աշխատանքի ձևաչափը

Cron- ի աշխատանքը դյուրին չէ տիրապետելը. փաստորեն, այն լայնորեն համարվում է ստանդարտ Linux կամ Unix վեբ սերվերի վրա հասանելի ամենաառաջատար կազմաձևերից մեկը: Դա մասամբ այն է, որ այս գործերը ծրագրավորելու համար օգտագործվող լեզուն այնքան արխայիկ է, և որոշ դեպքերում ՝ ամբողջությամբ հետընթաց: Երբ խոսքը վերաբերում է որոշակի ժամանակ Cron- ի գործին կամ Cron ներդիրին, բաներն, անշուշտ, հետընթաց են, գլխիվայր և մի փոքր շփոթեցնող.

Քրոնի գործով ժամանակ ասելու ձևաչափը հետևյալն է.

ՆԱԽԱԳԱՀԻ ԱՇԽԱՐՀԻ ՕՐ-ՕՐՎԱ ՀԱՆՁՆԱԺՈՂՈՎ-ՇՆՈՐՀԱԿԱԼԻ ՇՐAYԱՆ

Ամեն ինչ մի տող է, և նույնիսկ համարը և հրամանը կողք կողքի են մեկ միասնական սեղմման մեջ: Բավական է, որ շատ մշակողներ և սերվերային օպերատորներ ցանկանան, և, ըստ էության, նրանցից շատերը անում են այնքան ժամանակ, մինչև չփախցնեն Cron- ի արդյունավետ գործը զարգացնելու համար:.

Կարևոր է նշել, որ Քրոն աշխատանքի ժամանակի յուրաքանչյուր կողմը թվային է. գոյություն չունի ամսվա անունների օրվա անուններ կամ այլ բառեր, որոնք օգտագործվում են այն ժամանակահատվածի մշակման ընթացքում, որի ընթացքում պետք է կատարել առաջադրանք.

Հետևաբար, եկեք Cron- ի գործը հուլիսի 7-ին `ժամը 10: 30-ին, ավելացնելու համար, որպեսզի ստանանք զգացողություն, թե ինչպես է տեսնում Cron- ի գործի ժամանակը, երբ այն վերածվում է խիստ թվերի:.

30 10 07 07 *

Վերը նշված օրինակում ասվում է, որ գործը պետք է ավարտվի տասներորդ ժամի 30-րդ րոպեին `յոթերորդ ամսվա յոթերորդ օրը: Բոլոր թվերը երկու թվանշան են, նույնիսկ այն դեպքում, երբ ամիսը կամ օրը միայն մեկ նիշն է: Սա կարևոր է հիշել, քանի որ մեկ նիշը հաճախ Cron- ի գործն անվավեր կդարձնի, և այն պարզապես չի կատարվի, երբևէ: Con կառուցվածքի վերջում աստղանիշը նշում է, որ աշխատանքը պետք է իրականացվի շաբաթվա ցանկացած օրվա ընթացքում: Սա կարևոր է, քանի որ չորեքշաբթի օրը 03-ին այն նշանակելը նշանակում է, որ առաջադրանքը կկատարվի միայն հուլիսի 7-ին, եթե այդ օրը երեքշաբթի էր: Դա, ամենայն հավանականությամբ, տեղի է ունենալու յոթ կամ ութ տարին մեկ անգամ, ինչը մի փոքր կլանում է շատ մշակողների համար հաշվի առնելու համար.

Cron- ի գործը դնելիս պետք է հաշվի առնել նաև մեկ այլ կարևոր նշանակություն այն է, որ ժամային ձևաչափը 24-ժամյա ռազմական ժամանակ է, այլ ոչ թե 12-ժամյա քաղաքացիական ժամանակ: Քրոնի գործի ժամանակը ժամը 10-ին փոխելու համար, ժամը 10-ը փոխվելու է 22-ի `ներկայիս 10-ի փոխարեն.

Կրոնի աշխատանքի օրինակներ

Ի վերջո, եթե օգտագործողը պարզապես ցանկանում է կատարել որևէ առաջադրանք ամենօրյա, ամսական կամ նույնիսկ տարեկան կտրվածքով, ապա նրանք կարող են ամբողջովին անցնել որոշակի ժամանակ սահմանելու գործընթացը: Փոխարենը, Cron- ի աշխատանքային գործընթացը նախատեսում է պարզապես օգտագործել փոփոխականներ, որոնք որոշում են, թե երբ է աշխատանք կատարվում այս հաճախակի ընդմիջումներով: Դրանք ներառում են.

  • @ օր
  • @monthly
  • @yearly

Քանի որ ժամանակը չի կարող խստորեն վերահսկվել և որոշվել ժամերով և րոպեներով օգտագործելով, այդ գործերը տեղի կունենան հենց կեսգիշերին, սերվերի ներքին ժամանակի համաձայն, պահանջվող ընդմիջումից: Դա նշանակում է, որ @ ամսական միջակայքը տեղի է ունենալու յուրաքանչյուր ամսվա առաջին օրվա ճիշտ կեսին: @Yearly ընդմիջումը տեղի է ունենալու յուրաքանչյուր տարվա առաջին օրվա ուղիղ կեսգիշերին. իսկ @ օրյա ընդմիջումը տեղի կունենա տարվա յուրաքանչյուր օրվա յուրաքանչյուր կեսգիշերին անմիջապես.

Սա շատ ավելի հեշտ է, քան շաբաթվա որոշակի ամսաթիվը, ժամը և օրը սահմանելը, բայց որոշակի առաջադրանքներ, որոնք իրականացվում են ամսվա կամ տարվա առաջին օրվա կեսգիշերին, կարող են որոշակի թերություններ ունենալ որոշակի հաճախորդների համար: Միշտ հիշեք ինչպես ադմինիստրատորների, այնպես էլ կայքի այցելուների կարիքները, երբ պլանավորում են առաջադրանքներ, որոնք տեղի են ունենում հենց կեսգիշերին.

Հասկանալով «ԿՈՂՄ» փոփոխականը և ինչ անել դրա հետ

Ինչպես երևում է վերը նշված օրինակում, իրական Cron- ի աշխատանք կառուցելը համեմատաբար հեշտ է: Ամսաթիվը նախ պետք է որոշվի, որից հետո անմիջապես որոշվի Cron գործառույթի գործառույթը: Այդ գործառույթը կարող է լինել բառացիորեն որևէ բան, ներառյալ PHP սցենարի գործարկումը կամ հարմարեցված պահեստային սցենարը գործարկելը, որը պահում է սերվերի ֆայլերը և տվյալները կամ հեռավոր կամ տեղական ֆայլով: Պարզաբանման համար մենք կկառուցենք նախկինում օգտագործված օրինակի վրա և հրահանգելու ենք Cron- ի գործին ՝ PHP- ի սցենարը գործարկել հուլիսի 7-ին, առավոտյան 10: 30-ին: Այս PHP սցենարը կկոչվի «backup.php», և մենք ենթադրում ենք, որ PHP ֆայլը պահեստային լրիվ սկրիպտ է, որը հավաքում, սեղմում և պահում է կայքի ֆայլերը ամսվա յոթերորդի վրա, երբ հրահանգված է դա անել սերվերի կողմից: Ահա, թե ինչպես է թվում:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Երբ այս Cron աշխատանքը մուտքագրվի սերվերի Cron ներդիրների ցանկում, այն ավտոմատ կերպով կկատարվի յուրաքանչյուր տարվա հուլիսի 7-ին, ժամը 10: 30-ին: Այն գործարկելու է PHP պահուստային սցենարը, որը տեղակայված է «կրկնօրինակում-սկրիպտեր» գրացուցակում, և այստեղ է, որ աշխատում է Cron- ի աշխատանքների ճշգրիտ հանճարը.

Փոխարենը իր օգտագործողների առաջադեմ հրամաններ պահանջելու համար կատարել այնպիսի առարկաներ, ինչպիսիք են կայքի կրկնօրինակը և քեշի փչոցները, այն պարզապես օգտվողներին հնարավորություն է տալիս կատարել առկա գրությունները `որոշակի ընդմիջումով կամ որոշակի ամսաթվով: Սա նշանակում է, որ ծրագրավորման առաջադեմ գիտելիքներ անհրաժեշտ չեն այն բանից, ինչ արդեն գիտի օգտագործողը: PHP- ն իդեալականորեն ի վիճակի է կրկնօրինակել կայքի ֆայլերը, ինչպես նաև շատ ավելի առաջադեմ ֆայլեր և ծրագրավորման լեզուներ, որոնք ավելի բարդ օգտվող կարող են զարգացնել իրենց Linux սերվերի համար:.

Այս պարզ կարգավորումը կարող է օգտագործվել գործնականում որևէ բան կատարելու համար, այնքան ժամանակ, քանի դեռ նախնական գրված սցենարը նախատեսում է այդ գործողությունների կատարումը ՝ օգտագործողի մուտքից անկախ: Սա նշանակում է, որ Cron- ի գործառույթի միջոցով Cron- ի գործի կողմից կատարված ցանկացած սցենար պետք է լինի ամբողջովին ավտոմատացված և ունակ է ինքնուրույն կատարել: Օրինակ, անհնար կլիներ (և պարզապես անտրամաբանական) ասել Cron- ի աշխատանքը `ամեն օր միևնույն ժամանակ կատարելու WordPress ինդեքսը կամ թեմաների ֆայլը: Պարզապես գործողություններ կամ ավտոմատացված պրոցեսներ սահմանված չեն, և Cron- ի աշխատանքը անպայման կկատարեր ֆայլը, դա ոչինչ չէր անի և նստած կլիներ ստատիկ, քանի դեռ օգտագործողի մուտքն այլ եղանակով ապահովված չէր:.

Այդ իսկ պատճառով, եթե կրկնօրնկային գրությունները կոդավորելը կամ ներբեռնում է Cron- ի հետ աշխատելու համար, միշտ համոզվեք, որ իրենց գործառույթները հաջողությամբ իրականացնելու համար դրանք պարզապես զրո են պահանջում: Ավտոմատ առաջադրանքի ժամանակացույցը պետք է զուգորդված լինի իր կատարած ֆայլի ավտոմատացված գործընթացով: Այս կանոնից բացառություններ չկան.

Տիպիկ սերվերի վրա ընդհանուր Cron ներդիրի տիրապետումը

Յուրաքանչյուր հատուկ Cron գործ, որը նախատեսված է կատարման համար, գտնվում է ավելի մեծ ֆայլի մեջ, որը հայտնի է որպես Cron ներդիր: Որոշ սերվերներ ունեն բազմաթիվ Cron ներդիրներ բազմաթիվ տեսակի ծրագրերի և ավտոմատացված մուտքերի համար, բայց դա հազվադեպ է և հիմնականում վերապահված է առավել առաջադեմ սերվերային օպերատորների և սեփականատերերի համար: Նրանք, ովքեր ունեն ընդամենը մեկ Cron ներդիր ֆայլ, կարող են օգտագործել ստորև նշված հրահանգները `ֆայլը ամբողջությամբ խմբագրելու, ջնջելու կամ դիտելու համար, իրենց հատուկ ավտոմատացված յուրաքանչյուր գործով, որոնք նշված են ֆայլի ներսում դիտելու համար.

crontab -r

Այս հրամանը հեռացնում է (այսպիսով ՝ «r») կամ ջնջում է ամբողջ Cron ներդիրի ամբողջ ֆայլը ինքնին: Սա արդյունավետորեն մաքրելու է այն բոլոր հրահանգներից և ավտոմատացված գրություններից, և այն վերականգնելու է դատարկ ֆայլի վրա, որը կարող է վերակառուցվել: Սա հարմար տարբերակ է նրանց համար, ովքեր հասցրել են կոռումպել ֆայլը կամ ինչ-որ կերպ սխալ գործի դնել սխալ ժամանակները: Երբեմն, ամեն ինչից ավելի հեշտ է սկսել.

crontab -e

Այս դեպքում «ե» -ը հանդես է գալիս «խմբագրելու» համար: Այն օգտվողները, ովքեր ցանկանում են խմբագրել Cron ներդիրում նկարագրված գործառույթները, այլ ոչ թե ամբողջությամբ ջնջել ֆայլը, կարող են օգտագործել այս հրամանը `հրամանի տողի խմբագրին տեղափոխելու համար, ինչը նրանց թույլ կտա ավելացնել նոր առաջադրանքներ, հանել հիները կամ փոխել գործող գրաֆիկը: Cron էջանիշի փաստաթղթում նշված Cron- ի յուրաքանչյուր գործի համար անգամ.

crontab -l

Այս դեպքում բավական է հեշտությամբ հիշել «L» – ն «տեսքին» ասոցիացիայի հետ: Այս հրամանը սերվերի ադմինիստրատորին թույլ է տալիս պարզապես դիտել իրենց Cron ներդիրի ֆայլի ամբողջական բովանդակությունը `առանց այն ամբողջովին հանելու սերվերից և առանց բովանդակությունը խմբագրելու ունակության: Cron ներդիրի պարունակության այս ընթերցված ցուցադրումը կատարյալ է հիշելու համար, թե որ առաջադրանքներն են նշանակված, որ անգամ, և ֆայլի ամբողջականությունը հաստատելու համար.

Ինչու համար կարևոր է Cron Job- ի կամ Cron Tab- ի ավտոմատացման ֆայլերը տիրապետելը

Ընդհանրապես, սերվերի մասին ավտոմատացված միակ բանը նրա կոշտ սկավառակի պտտումն է և դրա ապարատային հատկությունների կատարումը: Դրանից դուրս, այնուամենայնիվ, սերվերը պետք է վերապատրաստված և հրահանգված կատարի կատարել սովորական և արտառոց առաջադրանքներ, որոնք վերևում և դուրս են գալիս, պարզապես ցուցադրելով համակարգչային կառավարման վահանակ կամ թարմացնելով PHP- ի կամ Perl- ի տեղադրումը, որը օգտագործողը տեղադրել է կոշտ սկավառակի վրա.

Կարևոր է հիշել, որ կանոնավոր կերպով սերվերը կարող է կատարել ամենակարևոր գործառույթներից մեկը `տվյալների և պարամետրերի պահուստավորման կայքի ստեղծում: Առանց Cron- ի աշխատանքն ավտոմատացնելու հնարավորություն չկա, քանի որ ինտերնետի և բոլոր չարամիտ այցելուների շնորհիվ, որոնք ամեն օր անցնում են կայքի միջոցով, ամեն օր կամ շաբաթական կտրվածքով այս գործընթացը ավտոմատացնելը չի ​​կարող հանգեցնել նշանակալի և տվյալների աղետալի կորուստ.

Դրանից վեր և ավելին, այնուամենայնիվ, կան մի շարք առաջադրանքներ, որոնք պետք է ավտոմատացվեն ՝ օգտագործելով Cron- ի աշխատանքային գործընթացը: Այս խնդիրները ներառում են կայքի պահոցների մաքրում, որոնք կարող են հնացած պատկերներ կամ տպագիր բովանդակություն ցուցադրել կայքի այցելուներին. այն ներառում է նաև հին ֆայլերի ջնջում, հին գրացուցակների և պատկերների մաքրում և համոզվում, որ սերվերի կոշտ սկավառակի վրա պահված ամեն ինչ ընթացիկ և ապականված չէ.

Likeիշտ այնպես, ինչպես առողջ անհատական ​​համակարգիչը ինքնաբերաբար պլանավորում է սկավառակի պահպանումը, հակավիրուսային և չարամիտ սկաները, ծրագրակազմի թարմացումը և ֆայլերի ջնջումները, առողջ սերվերը պետք է կազմաձևված լինի, որպեսզի ինքն իրեն հոգ տանի և մնա լավ վիճակում: Հակառակ դեպքում, այն խոցելի է դառնում խափանումների, հակերության փորձերի և տվյալների կորստի համար, ինչը կհանգեցնի կորցրած շահույթի, գովազդի, բովանդակության ստեղծման և նույնիսկ որոնիչների դասակարգման կարգավիճակի.

Հեշտ է սովորել և ավելի հեշտ է տեղակայել

Ստեղծել Cron- ի ստանդարտ Cron ներդիրի ստեղծումը ամենահեշտ գործերից է, որը կարող է անել սերվերի կառավարիչը.

Գործընթացը գտնվում է ստանդարտ հրամանի տողում և բաժանում է ժամանակի յուրաքանչյուր հատվածի երկնիշ կոդ.

Քանի որ այն չի պահանջում լրացուցիչ գիտելիքներ որևէ նոր ծրագրավորման լեզու `առաջադրանքները ավտոմատացնելու համար, ծառայությունն ըստ էության հիմնվում է գործող ծրագրավորման և սերվերի գործառնությունների վրա, որոնք արդեն տիրապետում են ադմինիստրատորի կողմից: Այս պարագայում պարզապես չկա պատճառ, որ չսկսենք հիմնական սերվերի գործառույթների ավտոմատացումը և կայքի տվյալների և գործողությունների ամբողջականության ապահովումը.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map