Cron — програма за автоматизирано планиране на задачи в UNIX и Linux
Открийте как да автоматизирате задачи в UNIX/Linux с cron — настройка на crontab, примери, синтаксис и най‑добри практики за надеждна периодична автоматизация.
Cron е компютърна програма, която може да се използва, за да накара компютъра да изпълнява задачи през определени интервали от време. Тя се използва в компютърните операционни системи UNIX и операционни системи, които са подобни на UNIX, като Linux.
Cron може да се използва за планиране на повечето повтарящи се задачи. Често се използва за автоматизиране на задачи, свързани с поддръжката или администрирането на компютър или компютърна мрежа, въпреки че може да се използва и за много други задачи, като например изтегляне на файлове от интернет и изтегляне на електронна поща в определени часове или дати.
Името на компютърната програма cron произлиза от думата cron, която е от гръцката дума за време - χρόνος (chronos).
Cron се настройва чрез редактиране на файл, наречен crontab (таблица на cron). В този файл се изброяват конкретните задачи, които компютърът трябва да изпълнява, и кога трябва да се изпълняват.
Как работи Cron
Cron работи като демон (background service), който периодично проверява за редове в crontab файловете и изпълнява зададените команди в точно определените моменти. За да изпълнява задачи, услугата cron трябва да е стартирана (на много системи услугата се казва просто cron или crond).
Формат на crontab
Всеки ред в crontab описва кога и какво да се изпълни. Общият формат е:
минутa час ден(от месецa) месец ден(от седмицата) команда
Полетата приемат следните стойности:
- минута: 0–59
- час: 0–23
- ден (от месеца): 1–31
- месец: 1–12 (или съкращения като Jan, Feb и т.н.)
- ден от седмицата: 0–7 (0 и 7 са неделя) или Mon–Sun
Могат да се използват специални символи:
- * — всяка стойност (всяка минута/час/ден и т.н.)
- , — разделяне на стойности (напр. 1,15,30)
- - — диапазон (напр. 1-5)
- / — стъпка (напр. */15 означава на всеки 15 минути)
Примери
- Всеки ден в полунощ:
0 0 * * * /path/to/script.sh
- На всеки 15 минути:
*/15 * * * * /usr/bin/some-command
- Всеки понеделник в 3:30 сутринта:
30 3 * * 1 /path/to/weekly-task
- При рестарт на системата (специален низ):
@reboot /path/to/startup-script
Специални низове
За удобство има и предварително дефинирани низове, които заместват четири или пет полета:
- @reboot — при стартиране на системата
- @hourly, @daily, @weekly, @monthly, @yearly (или @annually) — съответните периоди
Потребителски и системни crontab файлове
Има два основни вида crontab конфигурации:
- Потребителски crontab — редактира се чрез командата
crontab -e(за текущия потребител). Списъкът със задачи се съхранява в директории, контролирани от системата (напр. /var/spool/cron/), но не се редактира директно от потребителя. - Системен crontab — файлът
/etc/crontabи файловете в/etc/cron.d/. Те позволяват да се задава и потребител, от името на който да се изпълнява командата, и обикновено се използват от администратора за системни задачи.
Също така много системи имат директории /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ — скриптовете в тях се изпълняват съответно на всеки час, ден, седмица или месец.
Среда на изпълнение и добри практики
Командите, изпълнявани от cron, работят в ограничена среда. Някои важни съвети:
- Използвайте пълни пътища до изпълними файлове и скриптове (напр.
/usr/bin/python3), тъй като PATH в cron може да е различен от този в интерактивната ви сесия. - Дефинирайте нужните променливи в crontab (например
MAILTO,PATH,SHELL), ако задачата изисква специфична среда. - Пренасочвайте изхода (stdout и stderr) към лог файлове или /dev/null, за да избегнете неочаквани имейли:
0 2 * * * /path/to/backup.sh >> /var/log/backup.log 2>&1
- Проверявайте разрешенията на скриптовете и на файловете, които те ползват.
Управление и диагностика
- Редактиране на crontab:
crontab -e - Извеждане на crontab:
crontab -l - Премахване на crontab:
crontab -r - Логове: често cron записва дейност в системния лог (/var/log/syslog, /var/log/cron или подобен файл в зависимост от дистрибуцията).
Anacron и системи, които не работят непрекъснато
На лаптопи и други машини, които не са постоянно включени, anacron е полезен инструмент — той гарантира изпълнение на периодични задачи, дори ако компютърът е бил изключен в момента на планираното време. Anacron обикновено се интегрира със системните crontab механизми.
Сигурност и ограничения
Понеже cron изпълнява команди автоматично, е важно да се внимава какви скриптове се добавят и от кои потребители. Непроверени команди или неправилни пътища могат да доведат до пробиви в сигурността или до загуба на данни. Повечето системи позволяват на администратора да контролира кои потребители имат право да използват crontab чрез файлове като /etc/cron.allow и /etc/cron.deny.
С комбинация от правилна конфигурация, логване и добри практики, cron е мощен и надежден инструмент за автоматизация на широк набор от задачи в UNIX-подобни системи.
Въпроси и отговори
Въпрос: Какво е Крон?
О: Cron е компютърна програма, която се използва за планиране на задачи през определени интервали от време.
В: Къде се използва Cron?
О: Cron се използва в компютърните операционни системи UNIX и операционни системи, които са подобни на UNIX, като Linux.
В: Какви задачи могат да се планират с Cron?
О.: Повечето повтарящи се задачи могат да се планират с Cron. Той често се използва за автоматизиране на задачи, свързани с поддръжката или администрирането на компютър или компютърна мрежа, въпреки че може да се използва за много други задачи, като например изтегляне на файлове от интернет и изтегляне на електронна поща в определени часове или дати.
Въпрос: Откъде идва името Cron?
О: Името на компютърната програма Cron произлиза от думата cron, която е от гръцката дума за време - χρόνος (chronos).
В: Как се настройва Cron?
О: Cron се настройва чрез редактиране на файл, наречен crontab (таблица на cron). В този файл се изброяват конкретните задачи, които компютърът трябва да изпълнява, и кога трябва да се изпълняват задачите.
В: Какво представлява crontab?
О: Crontab е файл, в който се изброяват конкретните задачи, които компютърът трябва да изпълнява, и кога трябва да се изпълняват.
В: За какви повтарящи се задачи може да се използва Cron?
О: Повечето повтарящи се задачи, свързани с поддръжката или администрирането на компютър или компютърна мрежа, могат да бъдат автоматизирани с Cron. Той може да се използва и за много други задачи, като например изтегляне на файлове от интернет и изтегляне на електронна поща в определени часове или дати.
обискирам