Обзор 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.