Linux Debian Type CLI Docs

⏱ Автоматизация задач с помощью cron в Linux


📑 Содержание


Что такое cron

cron — это встроенный планировщик задач в Linux, который позволяет запускать команды или скрипты автоматически в указанное время или с определённой периодичностью.

Используется для:


⚙️ Основные преимущества cron


📂 Структура cron

Cron состоит из двух основных компонентов:

  1. Демон cron – работает в фоне и проверяет расписание задач.
  2. Файлы crontab – содержат список заданий для выполнения.

Файлы crontab бывают двух типов:

Тип Описание Пример пути
Системный Задачи для всех пользователей /etc/crontab, /etc/cron.d/
Пользовательский Задачи конкретного пользователя crontab -e (хранится в /var/spool/cron)

📝 Формат записи cron

Каждая строка crontab имеет 5 полей времени + команда:


* * * * * команда
| | | | |
| | | | └─ день недели (0-7, 0 и 7 = воскресенье)
| | | └── месяц (1-12)
| | └─── день месяца (1-31)
| └──── час (0-23)
└───── минута (0-59)

Примеры:

Запись Описание
0 2 * * * Каждый день в 02:00
*/5 * * * * Каждые 5 минут
0 0 * * 0 Каждый воскресенье в 00:00

Системные и пользовательские задачи


✏️ Редактирование crontab

Команды для работы с crontab:

# Редактирование crontab текущего пользователя
crontab -e

# Просмотр crontab текущего пользователя
crontab -l

# Удаление всех заданий пользователя
crontab -r

Примеры cron-заданий

💾 Ежедневное резервное копирование

Запуск скрипта /home/user/backup.sh каждый день в 03:00:

0 3 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

🧹 Очистка временных файлов

Удаление файлов старше 7 дней в /tmp каждое воскресенье в 01:30:

30 1 * * 0 find /tmp -type f -mtime +7 -delete

⏱ Запуск скрипта каждые 5 минут

*/5 * * * * /home/user/script.sh

🌐 Переменные среды в cron

По умолчанию cron использует минимальные переменные среды. Рекомендуется указывать:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Можно добавить в начале crontab.


📝 Логирование и отладка

* * * * * /home/user/test.sh >> /tmp/test.log 2>&1

⚙️ Рекомендации по использованию


✅ Заключение

cron — мощный инструмент автоматизации задач в Linux. С его помощью можно:

Правильная настройка crontab позволяет сэкономить время и повысить надёжность работы системы.