Мастеринг на работата на Cron и автоматизирање на основните задачи на серверот

Член напишан од:
  • Избрани статии
  • Ажурирано: Сеп 06, 2017

Веб-хостинг е дизајниран да биде лесен, јасен и совршен за професионалниот што е во движење и едноставно не може да го посвети секој час од секој ден на управување со нивниот хостинг сервер и поврзани задачи.

За таа цел, речиси секој сервер базиран на Unix или Linux нуди автоматизиран менаџер на задачи, познат како "cron работни места"Или" Crontab ".

Оваа алатка за комунални услуги е слична на распоредувачот на задачи во Microsoft Windows, со тоа што може да им биде кажано да вршат одредени работи во одредени периоди, зачувувајќи го корисникот рачно да ги извршува овие задачи. Ова е особено важно кога некој смета дека многу рутинско одржување на серверот, резервните копии и процедурите за комуникација може да потрае неколку часа и часови. Повеќето луѓе едноставно сакаат да си одат дома по еден ден во канцеларија и да се релаксираат, наместо да ги трошат своите вечерни архиви и да управуваат со контактите.

Овие луѓе се во среќа, бидејќи секоја задача може да се закаже на дневна, неделна или месечна основа - или дури и подалеку одвоено, во некои случаи, и специфични упатства може да се дадат на серверот во рамките на алатката Crontab за тоа како да се изврши задачата , како да знаете кога е завршена и што да направите кога задачата е всушност завршена.

Корисниците ќе можат да се релаксираат додека нивниот сервер го прави целото кревање со часови; или тие едноставно можат да закажат работа да се заврши додека тие се напорни за работа во нивните канцеларии. Бидејќи е автоматизирана, работата на Крон може да се случи во речиси секој час од денот.

Учење да кажувате време користејќи го форматот на Cron Job

Работата на Крон не е баш лесна работа за совладување; всушност, тоа е широко сметано за една од најнапредните конфигурации достапни на стандард Linux or Unix веб сервер. Ова е делумно затоа што јазикот што се користи за програмирање на овие работни места е толку архаичен, а во некои случаи и целосно наназад. Кога станува збор за известување за одредено време за работа на Cron или Cron засегнати, работите секако се наназад, наопаку и малку збунувачки.

Форматот за раскажување на време преку работа на Cron е таков:

MINUTE HOUR DAY-OF-MONTH MONTH DAY-OF-WEEK COMMAND

Сето тоа е една линија, па дури и бројот и командата се рамо до рамо во една униформа контракција. Доволно е да ги натераме повеќето програмери и сервер оператори да посакаат и, всушност, многу од нив прават се додека не се најават за развој на ефикасна работа на Cron.

Важно е да се напомене дека секој аспект од времето на работата на Крон е нумерички; нема имиња на денови за имиња на месеци, или други зборови што се користат во текот на развојот на времето за кое треба да се изврши некоја задача.

Затоа, ајде да поставиме работа на Крон за 10: 30 часот во јули 7th, со цел да се чувствуваме како изгледа времето на работа на Крон кога се претвора во строго броеви.

30 10 07 07 *

Примерот погоре кажува дека работата треба да се заврши во 30-та минута од десеттиот час на седмиот ден од седмиот месец. Сите броеви се долги со две цифри, дури и кога месецот или денот е само едноцифрена. Ова е важно да се запамети, бидејќи една цифра често ќе предизвика работата на Крон да биде невалидна и таа едноставно нема да се изврши, некогаш. На крајот на конкретната структура, вездичката означува дека работата треба да се изврши во кој било ден во неделата. Ова е важно, бидејќи поставувањето на 03 за среда би значело дека задачата би била извршена само во јули 7th, ако тој ден беше вторник. Тоа веројатно ќе се случи еднаш на секои седум или осум години, што е малку апсорбирање за повеќето развивачи да го земат предвид.

Друга важна работа која треба да се направи при поставувањето на задачата Cron е дека формат на час е 24-часовно воено време, а не 12-час цивилно време. За да го смените времето на работа на Cron до 10 pm, часот ќе се промени на 22 наместо тековната 10.

Cron Job Examples

Конечно, ако корисникот само сака да ја заврши задачата на дневна, месечна или дури и годишна основа, може да го прескокне процесот на поставување одредено време целосно. Наместо тоа, процесот на работа на Cron обезбедува едноставно користење на променливи кои одлучуваат кога работата е завршена во овие чести интервали. Тие вклучуваат:

  • @дневно
  • @ месечно
  • @ годишно

Бидејќи времето не може строго да се контролира и определи со употреба на часови и минути, овие работни места ќе се случат точно на полноќ, според внатрешното време на серверот, во бараниот интервал. Тоа значи дека интернетот @ месечно ќе се случи точно на полноќ на првиот ден од секој месец. Интервалот „година“ ќе се случи точно на полноќ на првиот ден од секоја година; а интернетот „Дневен“ ќе се случи точно на полноќ секој ден во годината.

Ова е многу полесно отколку поставувањето на одреден датум, време и ден во неделата, но одредени задачи кои се извршуваат на полноќ на првиот ден од месецот или годината може да имаат некои недостатоци за одредени клиенти. Секогаш чувајте ги предвид потребите на администраторите и на посетителите на сајтот кога закажувате задачи кои се појавуваат на точно полноќ.

Сфаќајќи ја "КОМАНД" променливата и што да правам со неа

Како што може да се види во примерот погоре, изградбата на вистинска работа на Крон е релативно лесна. Првиот датум мора прво да се дефинира, а потоа функцијата на Cron работата веднаш да се дефинира потоа. Таа функција може да биде буквално било, вклучително и водење на PHP-скрипта или извршување на прилагодено резервно скрипта што ги чува датотеките и податоците на серверот или во оддалечена или локална датотека. За појаснување, ќе се засноваме на примерот што беше претходно користен и ќе ја наведеме задачата на Крон да изврши PHP скрипта на јули 7th на 10: 30 наутро. Оваа PHP-скрипта ќе се вика „backup.php“ и ќе претпоставиме дека PHP-датотеката е целосна резервна скрипта што собира, компресира и складира датотеки на страници на седмиот месец од месецот кога ќе биде наложено да го стори тоа од страна на серверот. Еве како изгледа:

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

Кога оваа задача Cron ќе биде внесена во списокот со картичките Cron, на серверите, таа автоматски ќе се изврши на 10: 30 часот секој јули 7th на секоја година. Willе се изврши резервната скрипта за PHP што се наоѓа во директориумот „backup-scripts“, и тука функционира вистинскиот генијалец за поставување на задачи Cron.

Наместо да налагаат напредни команди на своите корисници да вршат работи како бекап на веб-страницата и кешот на кешот, тој едноставно им овозможува на корисниците да ги извршуваат постоечките скрипти во одреден интервал или на одреден датум во одредено време. Ова значи дека нема потреба од напредно знаење за програмирање надвор од она што корисникот веќе го знае. PHP е совршено способен за резервни копии на датотеки, како што се многу понапредните датотеки и програмски јазици кои можат да се развијат со пософистициран корисник за нивниот Linux сервер.

Оваа едноставна поставка може да се користи за да се направи буквално ништо, тогаш, се додека однапред напишаниот скрипт овозможува извршување на овие дејства независно од внесот на корисникот. Ова значи дека секој скрипта што ја извршува работата на Cron во рамките на јазичето Cron мора да биде целосно автоматизирана и способна самостојно да функционира. На пример, би било невозможно (и едноставно нелогично) да ја известиме задачата на Cron да извршува WordPress индекс или тема датотека секој ден во исто време. Едноставно нема никакви дејства или автоматски процеси дефинирани и, додека работата на Cron сигурно ќе ја изврши датотеката, таа нема да стори ништо и ќе седат статични додека влезот на корисникот не е обезбеден на друг начин.

Поради оваа причина, ако кодирањето или преземањето скрипти за резервни копии или други да работат со Cron задачите, секогаш бидете сигурни дека им е потребен точно нулти кориснички влез за успешно да ги извршуваат нивните функции. Автоматски задача распоредувачот мора да биде спарен со автоматски процес во рамките на датотеката што ја извршува. Нема исклучоци од ова правило.

Мастеринг на Целокупната датотека со Cron Tab на типичен сервер

Секоја специфична работа на Cron, која е специфицирана за извршување, лежи во поголема датотека позната како табла Cron. Некои сервери имаат повеќекратни јазичиња на Cron за повеќе типови на апликации и автоматски влезови, но ова е ретко и главно резервирано за најмногу однапред сервери и сопственици. Оние кои имаат само една табела со јазичиња Cron можат да ги користат командите подолу за да ја изменат, избришат или да ја видат датотеката во целост, со секоја од нивните специфични автоматски задачи наведени за гледање во датотеката.

crontab -r

Оваа команда ја отстранува (на тој начин „r“) или ја брише целата датотека Cron-табот. Ова ефикасно ќе го исчисти од сите команди и автоматски скрипти и ќе го врати во празна датотека што може да се изгради. Ова е соодветна опција за оние кои успеале да ја корумпираат датотеката или некако погрешни задачи и времиња. Понекогаш, едноставно е полесно да се започне секаде.

crontab-e

Во овој случај, "e" значи "уредување". Оние корисници кои сакаат да ги уредуваат функциите опишани во јазичето Cron, наместо целосно да ја избришат датотеката, можат да ја искористат оваа команда за да се однесат во уредувач на командната линија, што ќе им овозможи да да додавате нови задачи, да ги отстранувате старите или да ги промените привремените распореди за секоја од задачите на Cron, наведени во документот Cron tab.

crontab -l

Во овој случај, доволно е да се запамети со здружување на „L“ со „изглед“. Оваа команда му овозможува на администраторот на серверот едноставно да ја гледа целата содржина на датотеката со картички Cron, без да ја отстрани целосно од серверот и без да има можност да ги уредува содржините. Овој приказ само за читање на содржината на јазичето Cron е совршен за запомнување кои задачи се закажани за кое време и за потврдување на интегритетот на самата датотека.

Зошто е важно да ги совладате датотеките за автоматизација на Cron Tab и Cron Tab

Општо земено, единствената работа што се автоматизира за серверот е вртењето на хард дискот и перформансите на неговите хардверски карактеристики. Освен тоа, серверот мора да ги обучи и да им наложи да прават рутински и вонредни задачи што одат над и подалеку, само прикажување на софтверски контролен панел или надградба на инсталацијата на PHP или Perl што корисникот го стави на хард дискот.

Важно е да запомните дека една од најсуштинските функции што серверот може редовно да ги извршува е создавање на резервна копија на податоци и поставки на страницата. Практично не постои начин да се автоматизира овој процес без работа во Крон и, заради природата на Интернет и сите малициозни посетители кои поминуваат низ една веб-страница, неиспраќањето на автоматизирање на овој процес на дневна или неделна основа може да резултира во значителен и катастрофално губење на податоците.

Сепак, над и над тоа, постојат голем број на задачи што треба да се автоматизираат со користење на Cron процесот на работа. Овие задачи вклучуваат прочистување на мемориските страници на страниците што можат да прикажат застарени слики или печатена содржина на посетителите на страниците; исто така, вклучува бришење стари датотеки, чистење стари директориуми и слики и осигурување дека сè што е зачувано на хард дискот на серверот е тековно и некорумпирано.

Исто како здравиот персонален компјутер автоматски планира одржување на дискот, антивирусни и малициозни скенови, софтверски ажурирања и бришење на датотеки, здрав сервер мора да биде конфигуриран да се грижи за себе и да остане во добра состојба. Инаку, станува ранлива за хаварии, обиди за хакирање и губење на податоци што ќе доведе до изгубен профит, рекламирање, создавање на содржина, па дури и статус на рангирање на пребарувачот.

Лесен за учење и полесен за распоредување

Креирање на Cron работа во рамките на стандардниот Cron табот е една од најлесните работи што може да ги направи серверот администратор.

Процесот лежи во стандардната командна линија и го раздвојува секој дел од времето во двоцифрен код.

Поради тоа што не бара дополнително познавање на кој било нов програмски јазик со цел да се автоматизираат задачите, сервисот во суштина се базира на постоечките знаења за програмирање и серверски операции кои администраторот веќе ги поседува. Со ова е случај, едноставно нема причина да не започне автоматизирање на основните функции на серверот и да се обезбеди интегритет на податоците и операциите на сајтот.

За Џери Лоу

Основач на WebHostingSecretRevealed.net (WHSR) - преглед на хостинг доверлив и користен од корисниците на 100,000. Повеќе од 15 години искуство во веб хостинг, Филијалата маркетинг и SEO. Соработник на ProBlogger.net, Business.com, SocialMediaToday.com и многу повеќе.