Rain Wiki · Linux

cron и crontab

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

Linux · Rain Wiki

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 без питане.
  • Тествай командата ръчно със същия потребител, преди да я планираш.

Източници

Последна промяна: 2026-10-08

Свързани статии