Работа с Cron
Cron — это демон, который выполняет команды по заданному расписанию. Файл, содержащий расписание, называется crontab (Cron Table).
1. Проверка службы
Прежде чем планировать задания, убедись, что служба Cron запущена.
- Команда:
sudo systemctl status crond- Примечание: В Red Hat-подобных системах (Fedora, CentOS) демон часто называется
crond. В Debian/Ubuntu — простоcron.
- Примечание: В Red Hat-подобных системах (Fedora, CentOS) демон часто называется
2. Редактирование Crontab (пользовательские задания)
Наиболее распространенный способ планирования задач — создание пользовательского crontab.
- Команда:
crontab -e- Открывает crontab для текущего пользователя в текстовом редакторе по умолчанию (
vimилиnano).
- Открывает crontab для текущего пользователя в текстовом редакторе по умолчанию (
- Синтаксис: Каждая строка в crontab содержит шесть полей, разделенных пробелами:
№ |
Позиция |
Диапазон |
Назначение |
|---|---|---|---|
1 |
Минута |
0–59 |
Минута часа. |
2 |
Час |
0–23 |
Час суток. |
3 |
День месяца |
1–31 |
День месяца. |
4 |
Месяц |
1–12 (или названия) |
Месяц года. |
5 |
День недели |
0–7 (0 и 7 — воскресенье) |
День недели. |
6 |
Команда |
— |
Полная команда, включая абсолютные пути. |
- Специальный символ : Означает «каждый» (например, в поле часа означает «каждый час»).
- Пример задания:
13 * * * * logger "HELLO"- Это задание запускается в 13 минут каждого часа, каждый день, каждый месяц, каждый день недели и записывает сообщение «HELLO» в системный журнал.
3. Проверка выполнения задания
Cron-задания не выводят информацию на экран. Их результат записывается в системный журнал.
- Команда:
sudo journalctl - Проверка: Используй
journalctl(журнал Systemd) для просмотра логов и подтверждения того, что командаloggerуспешно выполнила запись.
Планирование одноразовых задач (at)
Команда at используется для планирования выполнения команды только один раз в определенное время.
1. Проверка службы
Прежде чем использовать at, необходимо убедиться, что демон atd активен и запущен.
- Команда:
sudo systemctl status atd - Назначение: Демон
atdследит за расписанием и выполняет запланированные задания в нужный момент.
2. Создание задания
Для создания задания пользователь открывает специальную оболочку at, вводит команду и завершает ввод.
Шаг |
Команда |
Назначение |
|---|---|---|
Запуск оболочки at |
at [время] (например, at 10:20) |
Открывает интерактивную оболочку для ввода команд. |
Ввод команды |
logger "message" или touch /tmp/10_22 |
Ввод команд, которые должны быть выполнены в указанное время. |
Завершение ввода |
Ctrl+D |
Критически важно! Этот символ конца файла ( EOF) завершает ввод и сохраняет задание в очередь at. |
3. Форматы времени
Команда at очень гибкая и может принимать различные форматы времени:
- Конкретное время:
at 10:20 - Слово:
at tomorrow,at noon(полдень) - Относительное время:
at now + 1 hour
4. Управление заданиями
Задания, запланированные через at, помещаются в очередь. Каждому заданию присваивается уникальный номер.
Команда |
Назначение |
|---|---|
atq (at query) |
Просмотр очереди — показывает список всех заданий, ожидающих выполнения. |
atrm [номер] (at remove) |
Удаление задания — отменяет запланированное задание по его номеру. |

