TGViewer
🐧 Linux Junior. Программирование под Linux. 🐧 Linux Junior. Программирование под Linux. @juniorlinux · 3.08K subscribers
Post #592 296
⚙️ Как устроена автоматизация задач через cron в Linux

Если вам нужно регулярное выполнение скрипта без ручного запуска, вам поможет cron. Это системный демон (crond), который раз в минуту проверяет свое расписание и запускает запланированные задачи.
Все задачи хранятся в специальной таблице — crontab.


🟪 Синтаксис расписания

Запись состоит из 5 полей времени и самой команды:

* * * * * /path/to/command
│ │ │ │ │
│ │ │ │ └── День недели (0–7, где 0 и 7 — воскресенье)
│ │ │ └──── Месяц (1–12)
│ │ └─────── День месяца (1–31)
│ └──────── Час (0–23)
└────────── Минута (0–59)


🚩Полезные спецсимволы:

* — любое значение (каждую минуту, каждый час и т.д.);
, — перечисление значений (1,15,30 — в 1, 15 и 30 минут);
- — диапазон (1-5 в поле дня недели означает "с понедельника по пятницу");
/ — шаг интервала (*/15 — каждые 15 минут).


🟪 Примеры:

🔎 0 4 * * *
каждый день в 04:00

🔎 */30 9-18 * * 1-5
каждые 30 минут в рабочие часы по будням

🔎 0 0 * * 0
каждое воскресенье в полночь


❗️ Проверить или составить сложное выражение удобнее всего на crontab.guru.


🟪 Практический пример

Допустим, нужно раз в неделю чистить старые логи приложения в папке ~/myapp/logs. Создаем скрипт clear_logs.sh:

#!/bin/bash
# Задаем PATH, чтобы cron гарантированно нашел утилиту find
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

LOG_DIR="$HOME/myapp/logs"
DAYS_TO_KEEP=7

find "$LOG_DIR" -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;


Делаем файл исполняемым:
chmod +x ~/scripts/clear_logs.sh


Открываем редактор crontab:
crontab -e


Добавляем задачу:
0 0 * * 0 /home/user/scripts/clear_logs.sh >> /home/user/scripts/clear_logs.log 2>&1


Что здесь происходит:

0 0 * * 0 — запуск каждое воскресенье в 00:00.
>> .../clear_logs.log — перенаправление стандартного вывода (stdout) в файл лога.
2>&1 — перенаправление ошибок (stderr) туда же, чтобы не потерять информацию о сбоях.


🚩 Базовые команды для работы

crontab -l — посмотреть список текущих задач пользователя
crontab -e — открыть редактор для создания/изменения задач
crontab -r — удалить все задачи текущего пользователя

⚠️ Важно: при редактировании через crontab -e обязательно оставляйте пустую строку в самом конце файла, иначе последняя задача может не выполниться.
  • 👍 2
More from @juniorlinux
  1. Sep 22, 2026По умолчанию rsync только добавляет и обновляет файлы, но не трогает то, что было удалено…
  2. Sep 22, 2026❓ Как удалить на приемнике файлы, которых больше нет в источнике, при синхронизации через…
  3. Sep 16, 2026Post #589
  4. Sep 10, 2026Как распаковать .tar.gz, .tar.bz2, .tar.xz и .tar.zst в Linux Для работы с архивами в Linu…
  5. Sep 4, 2026Посмотреть очередь задач, созданных через at, можно командой atq (или at -l). Она выведет…
  6. Sep 4, 2026❓ Как посмотреть список всех запланированных однократных задач at и отменить нужную? Ответ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →