Вебсайтҳо метавонанд вазифаҳои ба нақша гирифташударо бо Cron иҷро кунанд

соат

Мо дар кор як қатор системаҳои зиёдатие дорем, ки мунтазам равандҳоро иҷро мекунанд. Баъзеҳо вобаста ба корҳои кардаашон ҳар дақиқа, баъзеҳо шабона як маротиба медаванд. Масалан, мо метавонем як сенарияеро иҷро кунем, ки ҳамаи муштариёне, ки дар тӯли 30 рӯз харид накардаанд, содир кунад, то ба онҳо купон фиристад.

Ба ҷои кӯшиши пайгирӣ кардани ин ҳама дастҳо, сохтани ҷойҳои корӣ, ки ба таври худкор ба нақша гирифта ва иҷро мешаванд, хеле осонтар аст. Дар системаҳои асоси Unix, ин бо Cron анҷом дода мешавад. Барои шумо, мардуме, ки кореро медонед, ҳис кунед, ки агар ман ягон маълумоте паҳн кунам, ман ва хонандагонро таълим диҳед.

Ин таассуфовар аст, аммо вебсайтчии маъмул бо Cron тамоман шинос нест. Ҳатто агар онҳо бошанд, ширкатҳои хостинги веб аксар вақт ба Cron дастрасӣ ё дастгирии онро таъмин намекунанд. Хости ман яке аз охиринҳост - онҳо ба шумо имкон медиҳанд, ки онро истифода баред, аммо онро дастгирӣ намекунанд.

Cron чист?

Крон барои калимаи юнонии Chronos ном дорад, маънояш замон. Cron дар ҳалқаи пайваста барои иҷрои вазифаҳое, ки Crontab ҷамъоварӣ мекунанд (шояд барои он номгузорӣ шудааст) кор мекунад ҷадвалиulator. Он супоришҳо одатан ҳамчун Cronjobs номида мешаванд ва метавонанд ба скриптҳо дар сайти шумо муроҷиат кунанд.

Шарҳи Диаграммаи Cron

Crontab-ро чӣ гуна насб мекунам

Гирифтани Cron барои воқеан идора кардан душвор буда метавонад, бинобар ин ин аст он чизе, ки ман фаҳмидам ва чӣ гуна инро кардам Агар макидан:

  1. Ман скрипти худро барои тафтиши Twitter ташкил кардам API то бубинад, ки касе посух додааст @ifsuck. Ман он паёмҳоро бо паёмҳое, ки аллакай дар вебсайт ҳифз карда будам, ворид кардам ва паёмҳои навро муқоиса кардам.
  2. Пас аз кор кардани скрипт, ман иҷозат додам, ки корбар барои иҷрои скрипт иҷозат диҳад (744) ва истиноди скриптро ба файли Cronjob илова кардам - ​​дар ин бора баъдтар.
  3. Пас аз он ман бояд ба вебсайти худ тавассути SSH ворид шавам. Дар Mac, ки терминалро кушод ва навиштанро гирифт SSH username@domain.com ки дар он номи корбар номи корбарӣ буд ва ман мехостам онро истифода барам ва домейн вебсайт буд. Пас аз он маро талаб карданд ва гузарвожаро дод.
  4. Пас аз он ман кӯшиш кардам, ки скриптро бевосита аз фаврии фармон тавассути навиштани номи файл ва роҳи нисбӣ дар сервер иҷро кунам: /var/www/html/myscript.php
  5. Пас аз он ки онро дуруст кор кардам, ман дар сатри якуми файл коди лозимаи Unix илова кардам: #! / usr / bin / php -q . Ман боварӣ дорам, ки ин танҳо ба Unix мегӯяд, ки PHP -ро барои иҷрои скрипт истифода барад.
  6. Дар сатри фармонии Terminal, ман навиштам crontab (дигарон метавонанд чоп кунанд Метавонам) ва enter-ро пахш кунед ... ва ин танҳо лозим буд!

Синтаксис барои файли Cronjob

Вобаста ба №2 дар боло, Cron нақшаи мохиронаеро истифода мебарад, ки кай скриптҳои шумо иҷро карда мешаванд. Дар асл, шумо воқеан метавонед онро ба Cronfile-и худ нусхабардорӣ кунед (дар ҳости ман, он дар воқеъ ҷойгир аст / var / spool / cron / бо номи файл ҳамон тавре ки номи корбарии ман).

# + —————- дақиқа (0 - 59)
# | + ————- соат (0 - 23)
# | | + ———- рӯзи моҳ (1 - 31)
# | | | + ——- моҳ (1 - 12)
# | | | | + —- рӯзи ҳафта (0 - 6) (якшанбе = 0 ё 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Дар боло скрипти ман ҳар дақиқа иҷро карда мешавад. Агар ман мехостам, ки он дар як соат як маротиба кор кунад, ман танҳо чанд дақиқа пас аз соат мегузорам, ки онро иҷро кардан мехоҳам, бинобар ин агар он дар нишонаи 30 дақиқа бошад:

30 * * * * /var/www/html/myscript.php

Боварӣ ҳосил кунед, ки шумо низ иҷозатҳоро барои ин файл ҳамчун иҷрошаванда муқаррар кардаед! Ман фаҳмидам, ки синтаксис, иҷозатҳо ва иҷрои crontab аз равзанаи Terminal омилҳои муҳимтарин буданд. Ҳар дафъае, ки ман файлро дубора нигоҳ медоштам, ман иҷозатномаҳои худро низ лозим хоҳам ёфт!

Навсозӣ: Агар шумо хоҳед, ки ҷойҳои корӣ таъмин бошанд, як роҳи оддӣ навсозии майдони пойгоҳи додаҳо бо охирин бор иҷро шудани скрипт аст. Агар ин камтар бошад, шумо метавонед танҳо почтаи электронии ба худатон фиристодаро скрипт кунед.

Захираҳои иловагии Cron:

Шумо метавонед бо истифода аз Cron чанд корро автоматӣ кунед?

8 Комментарии

  1. 1

    Мақолаи хуб дар бораи таъсиси крон, барои касе, ки нав ба кор машғул аст, қисмати аз ҳама мушкил дар ташкили крон ин муайян кардани фосилаи иҷрои корон аст ва дар кӯшиши аввал ба даст овардани фосилаи нодуруст комилан мувофиқ аст. Агар cronjob-ҳои шумо ба вақт ҳассос бошанд, хуб аст, ки ба скрипт баъзе рамзҳо барои ҳамовозии ҳолат дохил карда шаванд, то шуморо аз вазъи иҷрои кор огоҳ кунанд.

  2. 2

    Салом Даг,

    Якчанд чизро бояд ҳангоми кор бо ҷойҳои корӣ ба назар гирифт.

    Аввалан, пас аз якчанд даҳҳо, шумо мехоҳед UI, пойгоҳи додаҳо ва синтаксиси англисӣ дошта бошед 😉

    Дуюм, cron, сарфи назар аз он, ки даъвати қаблии кор ба анҷом расидааст, корро дар вақти муайян сабукдӯш мекунад. Ҳамин тавр, як дақиқа як маротиба кор кардани як дақиқа, ки 2 дақиқа тӯл мекашад, зуд боиси пайдоиши ҳамон кор мегардад.

    Баъдан, вақте ки ягон хато рӯй медиҳад, ҳеҷ гуна хатогӣ вуҷуд надорад, бинобар ин шумо бояд гузориши хатогии худро илова кунед.

    Ман ба онҳо бо якчанд роҳ муроҷиат кардам:
    - барномае, ки тавассути cron ба кор андохта шудааст, ба пойгоҳи додаҳо нигоҳ кунад, то чӣ кор кардан лозим аст. Вобаста аз он чизе, ки мехоҳед, онро як дақиқа ё соат як маротиба иҷро кунед
    - ҳар як скрипт файли 'lock' -ро дар / tmp эҷод кунад ва агар он вуҷуд дошта бошад, аз нав оғоз накунед, агар ин корро такрор накунед, агар шумо онҳоро нахоҳед
    - агар скрипт файли қулфро аз 1 соат калонтар ёбад (ё чизе, ки марги шуморо нишон медиҳад) огоҳи почтаи электронӣ фиристед
    - оё скрипт дар бораи нокомии кор тавассути почтаи электронӣ фиристад, то бидонед, ки чизе хато кардааст
    - ба чаҳорчӯбаҳои монанди Flux ё ҷадвалбандиҳои тиҷорӣ нигоҳ кунед, вақте ки эҳтиёҷоти шумо аз якчанд скрипт берун мешавад

    Крис

  3. 4

    Инчунин илова мекунам, ки дар аксари системаҳои Linux / Unix, "crontab -e" он чизе аст, ки шумо барои таҳрири crontab истифода мекунед. Ман фикр мекунам, ки мизбони шумо (Jumpline) бо мақсади амният версияи тағирёфтаро истифода мебарад.

  4. 5

    Ман рӯзи аввали мулоқот бо Крониро то ҳол дар ёд дорам. Ман дар бораи ӯ чизе шунида будам, ки вай боэътимод аст, ҳамеша сари вақт, аммо баъзан дар бораи ниятҳои худ каме ошуфтааст.

    Ман инро дуруст донистам, зеро вай дар аввал барои ман сирри комил буд. Пас аз пурсиш дар бораи ӯ, ман хеле зуд фаҳмидам, ки чӣ гуна ӯ кор кардан мехоҳад. Ҳоло, ман тасаввур карда наметавонам, ки рӯзе бе ӯ дар ҳаётам гузарад. Вай дунёро ҳаяҷонбахш мекунад ва бори зиёдеро аз дӯши ман мебардорад.

    Дар тамоми ҷиддият, ман ҳис мекунам, ки ман рӯйро танҳо бо он чизе харидаам, ки бо корҳои cron автоматӣ карда метавонам. Онҳо воқеан дӯсти беҳтарини таҳиягаронанд. Агар шумо барои идоракунии сервери худ шахсе монанди CPanel -ро истифода баред, он барои сохтани кронҳо интерфейси хеле бештарро фароҳам меорад. Анҷом бо менюҳои афтанда барои дақиқаҳо, соатҳо, рӯзҳо, моҳҳо ва ғайра, ки барои шумо хати cron месозад.

  5. 7

    Ман бешубҳа мебинам, ки ин чизро ҳар як фурӯшанда бояд истифода барад ... Оё касе ҳаст, ки ин хидматро пешниҳод карда метавонад, зеро он ба андозае "техникӣ" садо медиҳад?

Ту чӣ фикр мекунӣ?

Ин сомона ба воситаи Akismet барои кам кардани спам истифода мешавад. Омӯзед, ки чӣ тавр маълумотҳои худро тафтиш кунед.