Введение / Зачем это нужно
Cron — это легковесный планировщик задач в Linux, который запускает команды по расписанию. Понимание основ cron позволяет вам автоматизировать регулярные задачи, такие как резервное копирование, очистка логов и отправка уведомлений, без необходимости вручную запускать скрипты.
Требования / Подготовка
- Доступ к терминалу с правами обычного пользователя (для редактирования личной таблицы) или суперпользователя (для системных задач).
- Базовое понимание bash-скриптов (необязательно, но полезно).
- Редактор с поддержкой
vi/nanoили любой текстовый редактор, настроенный как$EDITOR. - Необходимые скрипты должны быть доступны по указанному пути и помечены как исполняемые (
chmod +x).
Пошаговая инструкция
Шаг 1: Открыть редактор crontab
Выполните crontab -e. Система откроет выбранный редактор (обычно vi) с пустым файлом, в котором можно записать расписание задач.
Шаг 2: Добавить задачу cron
Добавьте строку с расписанием и командой, например:
# Ежедневное резервное копирование в 02:00
0 2 * * * /usr/local/bin/backup.sh > /var/log/backup.log 2>&1
- минуты –
0‑59 - часы –
0‑23 - день месяца –
1‑31 - месяц –
1‑12илиянв‑дек - день недели –
0‑7(0 и 7 означают воскресенье)
Вы можете использовать * для «каждый» или */N для «каждые N единиц». Используйте запятые для перечисления значений (1,3,5) и дефисы для диапазонов (2-5).
Шаг 3: Сохранить и перезапустить cron
Сохраните файл (Esc → :wq). Перезапустите демоночный процесс:
sudo systemctl restart cron
На older дистрибутивах используйте sudo service cron restart.
Шаг 4: Проверить регистрацию задачи
Выполните crontab -l, чтобы убедиться, что задача отображается. Запустите задачу вручную для проверки:
/usr/local/bin/backup.sh
Если скрипт исполняется без ошибок, cron должен запускать его по расписанию.
Проверка результата
- Проверьте журнал cron:
journalctl -u cron -f(илиsudo tail -f /var/log/syslogна Debian/Ubuntu). - Проверьте лог файла задачи: проверьте файл, указанный в команде (
/var/log/backup.log). - Проверьте регистрацию задачи: повторите
crontab -lперед и после изменения файла для подтверждения сохранения.
Возможные проблемы
- Неправильный синтаксис: cron не выводит ошибок, если синтаксис неправильный. Используйте
crontab -lдля проверки иcrontab -eдля исправления. - Отсутствие исполняемого флага: скрипт без
chmod +xможет не запускаться. Добавьтеchmod +x /usr/local/bin/backup.sh. - Неправильный путь к интерпретатору: если скрипт использует
#!/usr/bin/env python3, убедитесь, чтоpython3доступен в PATH задачи cron. - Проблемы с правами: задачи, требующие
sudo, должны быть добавлены в/etc/cron.d/с правильными правами доступа (chmod 644).