Ответ
Crontab (cron table) — это стандартный планировщик задач в Unix-подобных операционных системах, который позволяет автоматически выполнять команды или скрипты в заданное время.
Для редактирования файла с задачами текущего пользователя используется команда:
crontab -e
Каждая строка в файле crontab соответствует одной задаче и имеет следующий формат:
минута час день_месяца месяц день_недели команда
минута: 0-59час: 0-23день_месяца: 1-31месяц: 1-12день_недели: 0-7 (0 и 7 — воскресенье)
Пример: Запуск Python-скрипта каждые 5 минут.
*/5 * * * * /usr/bin/python3 /home/user/projects/my_script.py >> /home/user/projects/my_script.log 2>&1
Ключевые моменты при настройке:
- Абсолютные пути: Всегда используйте полные пути к исполняемым файлам (например,
/usr/bin/python3) и скриптам, так какcronвыполняется в ограниченном окружении без привычных переменныхPATH. - Права на выполнение: Убедитесь, что скрипт имеет права на исполнение (
chmod +x my_script.py). - Перенаправление вывода: Чтобы отслеживать ошибки и результаты выполнения, перенаправляйте стандартный вывод (stdout) и вывод ошибок (stderr) в лог-файл (
>> /path/to/log.log 2>&1). - Альтернативы: Для более сложных рабочих процессов с зависимостями и очередями стоит рассмотреть такие инструменты, как Celery или Apache Airflow.
Ответ 18+ 🔞
Слушай, а вот этот ваш крон, он же как бабушкин будильник, только для сервера, блядь! Заводишь его, а он тебе в нужное время команду выполняет, хоть ночью, хоть в воскресенье. Просто пиздец какой удобный!
Чтобы свои шедевры туда вписать, надо крикнуть в консоль вот эту магическую хуйню:
crontab -e
И тебе откроется файлик, где ты и будешь творить своё расписание, как какой-нибудь начальник цеха, блядь.
А расписание это, ёпта, выглядит как строка из пяти цифр и команды. Цифры — это когда хуярить, а команда — что именно хуярить. Разбираем по косточкам:
- Минута (0-59): Когда в часе? В 15-ю? В 30-ю? Или каждую, ёб твою мать?
- Час (0-23): В котором часу? В три ночи? В пять вечера?
- День месяца (1-31): Какого числа? В первый день? В последний?
- Месяц (1-12): В январе? В июле? Или каждый месяц, нахуй?
- День недели (0-7): В понедельник (1)? В воскресенье (0 или 7)? В выходные?
Вот смотри, пример, чтобы мозг не взорвался: Нужно скрипт на питоне гонять каждые пять минут, как заведённый.
*/5 * * * * /usr/bin/python3 /home/user/projects/my_script.py >> /home/user/projects/my_script.log 2>&1
Видишь */5 на первом месте? Это значит "каждые пять минут". А звёздочки на остальных — это "в любой час, в любой день, в любой месяц". Короче, постоянно, без передышки!
А теперь, сука, главные подводные камни, о которые все расшибают лбы:
- Абсолютные пути, блядь! Крон — он как слепой крот, он нихуя не видит твой привычный
PATH. Поэтому все пути — от корня и до самого файла! И к питону тоже: не простоpython3, а/usr/bin/python3. Иначе будет искать-искать и нихуя не найти, пидарас. - Права, ёпта! Твой скрипт должен быть исполняемым. Не забывай про
chmod +x my_script.py, а то крон на него посмотрит как на говно и пойдёт дальше. - Куда смотреть-то? Если не сказать крону, куда писать результаты, он их просто выбросит в никуда, и ты будешь сидеть и гадать: "Ну что, сука, работает или нет?" Поэтому всегда пили вывод в лог-файл вот этой прибамбасиной
>> /path/to/log.log 2>&1. Тогда и обычные сообщения, и ошибки все там будут, как на ладони. - Если всё совсем овердохуища сложно — если у тебя там цепочки задач, очереди и прочая дичь — то крон может и сдаться. Тогда уже смотри в сторону всяких Celery или Apache Airflow, они для таких оргий и придуманы. Но для простых "раз в час запусти" — крон твой лучший друг, блядь!