Cron vs Anacron_ Ինչպես պլանավորել աշխատանքները՝ օգտագործելով Anacron-ը Linux-ում


Linux-ի աշխարհում առաջադրանքների պլանավորումը կարևոր խնդիր է, որը ադմինիստրատորները պետք է կանոնավոր կերպով կատարեն: Սա արվում է սովորական առաջադրանքների կատարման գործընթացն ավտոմատացնելու և ճիշտ ժամանակին դրանց կատարումն ապահովելու համար: Կան երկու հայտնի գործիքներ, որոնք օգտագործվում են Linux-ում առաջադրանքների պլանավորման համար՝ cron և anacron: Այս երկու գործիքներն էլ ունեն իրենց յուրահատուկ առանձնահատկություններն ու առավելությունները:

Այս բլոգային գրառման մեջ մենք կքննարկենք cron-ի և anacron-ի միջև եղած տարբերությունները, այնուհետև ցույց կտանք, թե ինչպես օգտագործել anacron-ը Linux համակարգում առաջադրանքները պլանավորելու համար:

Կրոն ընդդեմ Անակրոն. Ո՞րն է տարբերությունը:

Նախքան մենք սովորենք, թե ինչպես պետք է պլանավորել աշխատատեղերը՝ օգտագործելով Anacron-ը, եկեք տեսնենք Cron-ի և Anacron-ի միջև եղած տարբերությունը:

Քրոն

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

Անակրոն

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

Անակրոնն աշխատում է՝ հետևելով վերջին անգամ աշխատանքի կատարմանը: Այնուհետև այն հաշվարկում է հաջորդ անգամ աշխատանքը, որը պետք է գործարկվի՝ հիմնվելով կազմաձևման ֆայլում նշված միջակայքի վրա: Եթե համակարգը փակվի կամ վերագործարկվի մինչև աշխատանքը գործարկվի, Անակրոնը կգործարկի աշխատանքը հաջորդ անգամ, երբ համակարգը գործարկվի:

Այս ձեռնարկում մենք կքննարկենք, թե ինչպես տեղադրել և կարգավորել Anacron-ը Ubuntu-ում և ցույց տալ, թե ինչպես կարելի է աշխատանք պլանավորել Anacron-ի միջոցով:

Օգտագործելով Anacron-ը աշխատանքի ժամանակացույցի համար

Այժմ, երբ մենք քննարկեցինք cron-ի և anacron-ի միջև եղած տարբերությունները, եկեք տեսնենք, թե ինչպես օգտագործել anacron-ը՝ Linux համակարգում աշխատատեղերը պլանավորելու համար: Մենք ենթադրում ենք, որ դուք հիմնական հասկացողություն ունեք Linux հրամանի տողի մասին:

Քայլ 1. Տեղադրեք Anacron-ը

Առաջին քայլը համոզվելն է, որ Anacron-ը տեղադրված է ձեր Linux համակարգում: Դա անելու համար բացեք տերմինալի պատուհանը և մուտքագրեք հետևյալ հրամանը −

sudo apt-get install anacron

Այս հրամանը կտեղադրի Anacron-ը Debian-ի վրա հիմնված համակարգում: Եթե դուք օգտագործում եք Linux-ի այլ բաշխում, հրամանը կարող է մի փոքր տարբեր լինել:

Քայլ 2. Ստեղծեք աշխատանք

Հաջորդ քայլը աշխատանք ստեղծելն է, որը մենք ցանկանում ենք պլանավորել՝ օգտագործելով Anacron-ը: Այս օրինակում մենք կստեղծենք պարզ bash սցենար, որը կտպագրի ընթացիկ ամսաթիվը և ժամը ֆայլում: Բացեք տեքստային խմբագրիչ և ստեղծեք նոր ֆայլ, որը կոչվում է «myjob.sh»: Ֆայլին ավելացրեք հետևյալ տողերը −

#!/bin/bash echo "The current date and time is $(date)" >> /var/log/myjob.log

Պահպանեք ֆայլը և դարձրեք այն գործարկելի՝ մուտքագրելով հետևյալ հրամանը −

chmod +x myjob.sh

Քայլ 3. Կարգավորեք Anacron-ը

Հաջորդ քայլը Anacron-ի կազմաձևումն է մեր աշխատանքը գործարկելու համար: Անակրոնն օգտագործում է կազմաձևման ֆայլ, որը կոչվում է «anacrontab»՝ գործերը և դրանց պլանավորման միջակայքերը սահմանելու համար: Բացեք տերմինալի պատուհանը և մուտքագրեք հետևյալ հրամանը՝ anacrontab ֆայլը խմբագրելու համար

sudo nano /etc/anacrontab

Սա կբացի anacrontab ֆայլը Nano տեքստային խմբագրիչում: Անակրոնթաբ ֆայլն ունի հետևյալ ձևաչափը −

period delay job-identifier command

Եկեք մանրամասն նայենք այս պարամետրերից յուրաքանչյուրին −

  • Ժամանակաշրջան − Պետական պարամետրը սահմանում է. աշխատանքի երկու հաջորդական փուլերի միջև ընկած ժամանակահատվածը օրերով: Օրինակ, եթե դուք ցանկանում եք գործարկել աշխատանքն ամեն օր, դուք պետք է սահմանեք ժամկետը 1-ի:

  • Հապաղում − Հապաղման պարամետրը սահմանում է. ժամանակը րոպեներով, որին Անակրոնը կսպասի նախքան աշխատանքը գործարկելը համակարգը բեռնելուց հետո: Այս պարամետրը օգտակար է, եթե ցանկանում եք շեղել աշխատանքների կատարումը՝ գործարկման ընթացքում համակարգը չծանրաբեռնելու համար: Կանխադրված ուշացումը 5 րոպե է:

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

  • Հրաման − հրամանի պարամետրը. հրամանը, որը կկատարվի, երբ աշխատանքը գործարկվի: Սա կարող է լինել ցանկացած վավեր shell հրաման, սցենար կամ գործարկվող:

Հետևյալ տողը ավելացրեք anacrontab ֆայլի ներքևում՝ մեր աշխատանքը սահմանելու համար

1 5 myjob /path/to/myjob.sh

Այս տողով սահմանվում է 1 օր ժամկետով և 5 րոպե ուշացումով աշխատանք: Աշխատանքի նույնացուցիչն է «myjob», իսկ հրամանը՝ «/path/to/myjob.sh»: Սա նշանակում է, որ Anacron-ը կաշխատի աշխատանքը օրական մեկ անգամ, և եթե համակարգը փակվի կամ վերագործարկվի մինչև աշխատանքը գործարկվի, Anacron-ը կաշխատի այն հաջորդ անգամ, երբ համակարգը գործարկվի, քանի դեռ անցել է առնվազն 5 րոպե: վերջին անգամ աշխատանքն իրականացվել է:

Պահպանեք anacrontab ֆայլը և դուրս եկեք տեքստային խմբագրիչից:

Քայլ 4. Փորձարկել աշխատանքը

Վերջնական քայլը աշխատանքը փորձարկելն է՝ համոզվելու, որ այն ճիշտ է աշխատում: Դա անելու համար բացեք տերմինալի պատուհանը և մուտքագրեք հետևյալ հրամանը −

sudo anacron -f

Այս հրամանը կստիպի Անակրոնին անմիջապես գործարկել բոլոր նախատեսված աշխատանքները: Anacron-ը նաև կաշխատի բոլոր աշխատանքները, որոնք բաց են թողնվել համակարգի անջատման կամ վերագործարկման պատճառով:

Ստուգեք /var/log/myjob.log ֆայլը՝ համոզվելու համար, որ աշխատանքը ճիշտ է աշխատում: Մատյան ֆայլում դուք պետք է տեսնեք տող, որը պարունակում է ընթացիկ ամսաթիվը և ժամը:

Աշխատանքի պլանավորում Անակրոնի հետ

Anacron-ի հետ աշխատանք պլանավորելու համար դուք պետք է նոր մուտք ստեղծեք /etc/anacrontab կազմաձևման ֆայլում: Օրինակ, ենթադրենք, որ դուք ցանկանում եք պլանավորել աշխատանք՝ 30 օրը մեկ ջնջելու հին մատյան ֆայլերը: Դուք կարող եք ավելացնել հետևյալ տողը կազմաձևման ֆայլին −

30 5 cleanup / usr/local/bin/cleanup-script.sh

Այս տողում նշվում է, որ cleanup-script.sh սկրիպտը կկատարվի յուրաքանչյուր 30 օրը մեկ՝ 5 րոպե ուշացումով համակարգի բեռնումից հետո: Այս աշխատանքի համար աշխատանքի նույնացուցիչը «մաքրում» է:

Մուտքը ավելացնելուց հետո պահպանեք կազմաձևման ֆայլը և դուրս եկեք տեքստային խմբագրիչից:

Anacron-ը ավտոմատ կերպով կաշխատի աշխատանքը հաջորդ անգամ, երբ համակարգը բեռնվի, և դրանից հետո յուրաքանչյուր 30 օրը մեկ: Եթե համակարգը չի միացվել նախատեսված ժամանակի ընթացքում, ապա Անակրոնը կգործարկի աշխատանքը հաջորդ անգամ, երբ համակարգը միացվի:

Եզրակացություն

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