Команды
crontab: синтаксис cron с примерами (каждые 5 минут, каждый день, при загрузке)
cron запускает команды по расписанию: резервные копии, очистку, отчёты. Расписание каждого пользователя хранится в его crontab.
Формат
┌──────── минута (0–59)
│ ┌────── час (0–23)
│ │ ┌──── день месяца (1–31)
│ │ │ ┌── месяц (1–12)
│ │ │ │ ┌ день недели (0–7; 0 и 7 — воскресенье)
│ │ │ │ │
* * * * * команда
* — любое значение, */5 — каждое пятое, 1-5 — диапазон, 1,15 — список.
Примеры расписаний
| Запись | Когда |
|---|---|
* * * * * | каждую минуту |
*/5 * * * * | каждые 5 минут |
0 * * * * | каждый час в :00 |
0 3 * * * | каждый день в 03:00 |
30 9 * * 1-5 | по будням в 09:30 |
0 0 * * 0 | каждое воскресенье в полночь |
0 0 1 * * | первого числа каждого месяца |
@reboot | при загрузке системы |
@daily, @hourly | раз в день, раз в час |
Команды
crontab -l # мои задачи
crontab -e # редактировать
crontab -l -u alice # задачи другого пользователя (root)
ls /etc/cron.d /etc/cron.daily /etc/cron.hourly # системные задачи
cat /etc/crontab # системное расписание (с полем «пользователь»)
Пример строки:
0 3 * * * /usr/bin/tar -czf /backup/site-$(date +\%F).tar.gz /var/www >> /var/log/backup.log 2>&1
Частые ошибки
- Команда работает в терминале, но не в cron. У cron минимальный PATH и другой рабочий каталог: пишите полные пути к программам и файлам.
%в команде. В crontab знак%означает перевод строки — экранируйте его:\%.- Никто не видит ошибок. Перенаправляйте вывод в журнал:
>> /var/log/job.log 2>&1.
С точки зрения безопасности
- Закрепление: атакующий добавляет свою задачу, чтобы вернуться после перезагрузки. При
расследовании проверяют crontab всех пользователей и
/etc/cron*. - Повышение привилегий: скрипт, который root запускает по cron, но может изменить любой,
— прямой путь к root. Ищите такие скрипты через
find / -perm -o+w -type f 2>/dev/null.
Обновлено 20 октября 2026 г.