Разуменне і выкарыстанне Cron: поўнае кіраўніцтва па раскладзе заданняў
Cron, Скарачэнне каманда запуску онлайн, гэта магутны планавальнік заданняў на аснове часу ў Unix-падобных аперацыйных сістэмах. Тэрмін крон гэта гульня слова кронас or Chronos, які ў грэцкай міфалогіі ўвасабляе час. Назва cron для планавальніка заданняў на аснове часу адлюстроўвае яго функцыю планавання і выканання задач у пэўны час або інтэрвалы, што робіць яго адпаведнай спасылкай на канцэпцыю часу ў міфалогіі.
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 азначаюць нядзелю)
Сінтаксіс Cron
Разуменне сінтаксісу запісу crontab вельмі важна. Гэта адбываецца па схеме:
* * * * * command-to-be-executed
Вось тлумачэнне з каментарамі, якое вы можаце ўставіць у сваё заданне cron:
# +---------------- 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
кожны дзень апоўначы, а вывад (як у стандартным вывадзе, так і ў стандартным фармаце), створаны скрыптам, дадаецца ў файл часопіса
/path/to/cron.log
. Гэта звычайная практыка збору і рэгістрацыі вынікаў заданняў cron для маніторынгу і ліквідацыі непаладак. Давайце разбяром гэты канкрэтны сінтаксіс задання cron:
- *0 0 * * *: У гэтай частцы вызначаецца расклад, калі павінна выконвацца заданне cron. У гэтым выпадку ён павінен запускацца кожны дзень апоўначы (0 хвілін на 0 гадзін).
- /шлях/да/script.sh: гэта каманда або скрыпт, якія трэба выканаць падчас запуску задання cron. У гэтым прыкладзе паказаны скрыпт, размешчаны па адрасе
/path/to/script.sh
. - >> /шлях/да/cron.log: Гэтая частка перанакіроўвае стандартны вывад (stdout) задання cron у файл часопіса з імем
cron.log
знаходзіцца ў/path/to/
.>>
аператар дадае вывад у файл журнала, таму, калі файл не існуе, ён будзе створаны, а калі ён ужо існуе, вывад будзе дададзены ў канец файла. - 2> & 1: Гэта выкарыстоўваецца для перанакіравання стандартнага вываду (stdout) і стандартнай памылкі (stderr) у адзін і той жа файл часопіса. The
2
прадстаўляе stderr, і1
прадстаўляе стандартны вывад. Такім чынам,2>&1
азначае, што як stdout, так і stderr перанакіроўваюцца ў адзін і той жа файл часопіса, указаны раней.
Cron - гэта каштоўны інструмент для аўтаматызацыі задач у сістэмах на базе Unix. Дзякуючы гібкім варыянтам планавання, ён можа спрасціць адміністраванне сістэмы і павысіць эфектыўнасць. Разумеючы яго сінтаксіс і прытрымліваючыся лепшых практык, вы можаце выкарыстоўваць моц cron для эфектыўнай аўтаматызацыі руцінных задач.
Дадатковыя рэсурсы Cron
- Дэман Unix - Дзін Уілсан