# cron и crontab

> Как cron стартира планирани задачи, петте времеви полета в crontab, къде се намират системните файлове на cron и как се сравняват таймерите на systemd.

cron е класическият Unix демон, който изпълнява команди по график. Всеки потребител има crontab, който се редактира с crontab -e и в който всеки ред съдържа пет времеви полета (минута, час, ден от месеца, месец, ден от седмицата), последвани от командата. Системните задачи се намират в /etc/crontab и /etc/cron.d/.

## Времевите полета

'30 2 * * *' означава 02:30 всеки ден; '*/10 * * * *' на всеки десет минути; '0 9 * * 1' в 09:00 всеки понеделник. Ден от седмицата 0 и 7 е неделя.

## Системни файлове

Файловете в /etc/cron.d/ и /etc/crontab имат допълнително поле – потребителското име, разположено между времето и командата. Директории като /etc/cron.daily съдържат скриптове, които се изпълняват веднъж на ден.

## Чести капани

cron работи с минимална среда: използвай пълни пътища или задай PATH в crontab. Изходът се изпраща по имейл на собственика или се губи; пренасочи го към лог файл. Символът % има специално значение в редовете на crontab и трябва да бъде ескейпнат като \%.

## таймери на systemd

В дистрибуциите със systemd модулите .timer са алтернатива с регистриране в journal, рандомизирани закъснения и наваксване на пропуснати изпълнения (Persistent=true).

## Как да добавиш ежедневна задача

1. Отвори своя crontab: crontab -e
2. Добави ред, например: 30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
3. Запази и излез; cron отчита промяната автоматично.
4. Списък на задачите: crontab -l

## Внимание

- 'crontab -r' изтрива целия crontab без питане.
- Тествай командата ръчно със същия потребител, преди да я планираш.

## Източници

- [crontab(5)](https://man7.org/linux/man-pages/man5/crontab.5.html)
- [crontab(5) (Debian)](https://manpages.debian.org/bookworm/cron/crontab.5.en.html)
- [systemd.timer(5)](https://man7.org/linux/man-pages/man5/systemd.timer.5.html)

Последна промяна: 2026-10-08
URL: https://raincleaner.eu/bg/wiki/linux/cron
