Главная > Управление пакетами и системой > crontab

Полное руководство по команде crontab: как планировать повторяющиеся задачи

`crontab` — команда, используемая в системах Linux/Unix для периодического выполнения определенных команд или скриптов в установленное время. Она играет очень важную роль в автоматизации повторяющихся задач, таких как обслуживание системы, резервное копирование и синхронизация данных.

Обзор crontab

crontab — это сокращение от 'cron table', файл, содержащий запланированные задачи пользователя. Каждая строка этого файла определяет одну задачу (job), и демон cron читает этот файл, чтобы выполнять задачи в установленное время.

Структура полей crontab

Каждая строка файла crontab состоит из 6 полей. Первые 5 полей определяют время выполнения, а последнее поле определяет команду, которую нужно выполнить.

Подробности полей времени
Поле Описание Диапазон
1 Минуты (Minute) 0-59
2 Часы (Hour) 0-23
3 День (Day of month) 1-31
4 Месяц (Month) 1-12
5 День недели (Day of week) 0-7 (0 и 7 — это воскресенье)
6 Команда Команда или скрипт для выполнения

Специальные символы

Вы можете использовать специальные символы в полях времени для более гибкого указания времени.

  • `*`: Каждое время (например, каждую минуту, каждый час)
  • `,`: Указание нескольких значений (например, `1,3,5` -> 1, 3, 5 минут)
  • `-`: Указание диапазона (например, `10-15` -> с 10 до 15 минут)
  • `/`: Указание интервала (например, `*/10` -> каждые 10 минут)

Основные параметры

Изучите параметры управления файлом crontab, которые являются основными функциями команды crontab.

1. Управление файлом crontab

2. Управление пользователями

Сгенерированная команда:

Комбинируйте команды.

Описание:

`crontab` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Часто используемые примеры

Узнайте, как настроить различные повторяющиеся задачи с помощью crontab.

Запуск скрипта резервного копирования в 2:30 каждое утро

crontab -e
30 2 * * * /home/user/backup.sh

Настраивает выполнение скрипта `/home/user/backup.sh` каждый день в 2:30 ночи.

Обновление системы в 8:00 каждое понедельник

crontab -e
0 8 * * 1 sudo apt update && sudo apt upgrade -y

Обновляет системные пакеты в 8:00 каждое понедельник. (Для Ubuntu/Debian)

Очистка лог-файла каждые 10 минут

crontab -e
*/10 * * * * echo '' > /var/log/app.log

Удаляет содержимое файла `/var/log/app.log` каждые 10 минут.

Перезапуск веб-сервера в определенное время

crontab -e
0 4 1 * * sudo systemctl restart nginx

Перезапускает веб-сервер (nginx) в 4:00 первого числа каждого месяца.

Запуск задачи каждый час с 6:00 до 18:00

crontab -e
0 6-18 * * * /path/to/myscript.sh

Запускает `myscript.sh` каждый час с 6:00 до 18:00.

Установка crontab (при необходимости)

Обычно предустановлен во многих дистрибутивах Linux, но в некоторых минимальных установках может потребоваться установить пакет демона cron.

Debian/Ubuntu

sudo apt update
sudo apt install cron

Устанавливает демон cron на системах на основе Ubuntu или Debian.

CentOS/RHEL/Fedora

sudo yum install cronie
sudo systemctl enable crond
sudo systemctl start crond

Устанавливает демон cron на системах на основе CentOS, RHEL или Fedora.


Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории