Разбирање и користење на Cron: сеопфатен водич за распоред на работните места
Cron, кратко за командата работи онлајн, е моќен распоредувач на работни места базиран на време во оперативни системи слични на Unix. Терминот cron е игра со зборот kronos or Хронос, кој во грчката митологија го претставува времето. Името cron за распоредувачот на работни места засновано на време ја рефлектира неговата функција на закажување и извршување задачи во одредени времиња или интервали, што го прави соодветна референца за концептот на време во митологијата.
Cron ви овозможува да ги автоматизирате повторувачките задачи, да извршувате скрипти во одредени интервали и да ја одржувате ефикасноста на системот. Овој сеопфатен водич ќе ве води низ сè што треба да знаете за cron, од инсталација до употреба, клучен речник и примероци од вистински код.
Содржина
- Што е крон?
- Инсталирање на Cron
- Основни поими и терминологија
- Крон синтакса
- Примери и случаи на употреба
- Вообичаени стапици и најдобри практики
- Дополнителни Cron ресурси
Што е Крон?
Cron е демон (процес во заднина) кој работи на системи базирани на Unix, вклучувајќи Linux и macOS. Неговата примарна цел е автоматски да ги извршува закажаните задачи. Овие задачи може да варираат од едноставни скрипти до одржување на системот и резервни копии.
Инсталирање на Cron
Во повеќето системи слични на Unix, cron е претходно инсталиран. Можете да ја проверите неговата достапност со отворање на терминал и внесување:
crontab -e
Ако оваа команда го отвори уредникот на табела cron, сте го инсталирале cron. Ако не, можете да го инсталирате користејќи го менаџерот на пакети на вашиот систем. На пример, на Ubuntu, можете да користите:
sudo apt-get install cron
Крон концепти и терминологија
Пред да се фрлиме во употребата на Cron, ајде да разбереме некои суштински концепти и терминологија:
- Кронтаб: Кратко за cron маса, тоа е датотека што содржи список на закажани задачи за корисникот.
- Кроњоб: Една задача или команда планирана да се извршува во одредено време.
- Полиња: Секоја cronjob има пет полиња кои дефинираат кога ќе работи работата:
- Минута (0-59)
- Час (0-23)
- Ден во месецот (1-31)
- Месец (1-12)
- Ден во неделата (0-7, каде и 0 и 7 ја претставуваат неделата)
Крон синтакса
Разбирањето на синтаксата на записот на кронтаб е од клучно значење. Ја следи шемата:
* * * * * command-to-be-executed
Еве коментирано објаснување што можете да го вметнете во вашата cron job:
# +---------------- 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
Секоја ѕвездичка (*) претставува поле во изразот cron. На пример, за да закажете работа секој ден во 3:30 часот, би користеле:
30 15 * * * command-to-be-executed
Cron Примери и случаи на употреба
Ајде да истражиме неколку практични примери за да ја илустрираме употребата на Cron:
- Водење скрипта дневно: За да извршите скрипта секој ден на полноќ, можете да користите:
0 0 * * * /path/to/script.sh
- Водење скрипта секој час: За задача на час, користете:
0 * * * * /path/to/script.sh
- Неделна резервна копија: За да закажете неделна резервна копија во недела во 2 часот по полноќ, користете:
0 2 * * 0 /path/to/backup-script.sh
- Извршување на задача во одредени месеци: За работа само во јануари и јули во 8:30 часот:
30 8 * 1,7 * /path/to/script.sh
Замки на Cron и најдобри практики
- Променливи за животна средина: Осигурете се дека вашите cron работни места ги поставуваат потребните променливи на животната средина, бидејќи cron задачите не ги наследуваат променливите на околината на вашата школка.
- Дозволи: Бидете сигурни дека сте ги поставиле дозволите на вашата датотека со скрипта како извршна. Секој пат кога повторно ќе ја зачував мојата скрипта, ќе најдам дека моите дозволи треба да се постават повторно!
- Променливи на патеката: Наведете ја целосната патека до извршните датотеки и скриптите во рамките на вашите задачи за cron за да избегнете проблеми со релативните патеки.
- Тестирање: Тестирајте ги во безбедно опкружување пред да поставите критични cron работни места за да се осигурате дека работат како што се очекува.
- Влези: Пренасочете го излезот од вашите задачи на cron во датотека за евиденција за да го следите нивното извршување и сите потенцијални грешки.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Оваа cron задача работи скрипта /path/to/script.sh
секој ден на полноќ, а излезот (и stdout и stderr) генериран од скриптата се додава во датотеката за евиденција
/path/to/cron.log
. Ова е вообичаена практика за снимање и евидентирање на излезот од cron задачите за следење и решавање проблеми. Ајде да ја разложиме оваа специфична синтакса на cron job:
- *0 0 * * *: Овој дел го дефинира распоредот за тоа кога треба да се изврши cron задачата. Во овој случај, планирано е да работи секој ден на полноќ (0 минути и 0 часа).
- /path/to/script.sh: Ова е командата или скриптата што треба да се изврши кога ќе се изврши cron задачата. Овој пример покажува скрипта лоцирана на
/path/to/script.sh
. - >> /path/to/cron.log: Овој дел го пренасочува стандардниот излез (stdout) од cron задачата во датотека за евиденција именувана
cron.log
наоѓа на/path/to/
. на>>
операторот го додава излезот на датотеката за евиденција, па ако датотеката не постои, таа ќе се креира, а ако веќе постои, излезот ќе се додаде на крајот на датотеката. - 2> и 1: Ова се користи за пренасочување на стандардниот излез (stdout) и стандардната грешка (stderr) во истата датотека за евиденција. На
2
претставува stderr, и на1
претставува stdout. Значи,2>&1
значи дека и stdout и stderr се пренасочени кон истата датотека за евиденција наведена претходно.
Cron е вредна алатка за автоматизирање на задачите на системи базирани на Unix. Со своите флексибилни опции за распоред, може да ја поедностави администрацијата на системот и да ја подобри ефикасноста. Со разбирање на неговата синтакса и следење на најдобрите практики, можете да ја искористите моќта на cron за ефективно да ги автоматизирате вашите рутински задачи.
Дополнителни ресурси на Cron
- Уникс Даемон - Дин Вилсон