Задания по расписанию в Linux cron
Introduction |
Introduction
wiki
cron — классический демон (компьютерная программа в системах класса UNIX),
использующийся для периодического выполнения заданий в определённое время.
Регулярные действия описываются инструкциями, помещенными в файлы crontab и
в специальные каталоги.
Название cron образовано от греческого слова χρόνος (хрόнос) — время
(по-английски — chronos).
В системах на базе systemd cron фактически замещён встроенным механизмом systemd.timer.
Файлы crontab, создаваемые для отдельных пользователей, находятся в каталоге
/usr/spool/cron/crontabs/
или
/var/spool/cron/tabs/.
Редактировать их вручную не рекомендуется, для этого используют команду
crontab -e
.
Файлы
crontab
, используемые для управления всей системой, располагаются в каталоге
/etc/cron.d/.
Кроме того, в каталогах
/etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/
размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).
Запускать скрипт каждую минуту
crontab -e
*/1 * * * * script.sh
Или просто
* * * * * script.sh
По умолчанию cron запускает скрипты из домашней директории
Запуск из других директорий
To запустить скрипт из другой директории - в неё нужно сперва перейти
* * * * * cd monitoring/new_scripts && $(which bash) script.sh
cron перейдёт в нужную директорию а потом увидев && поймёт что
нужно сделать И выполнение скрипта.
Логическое или можно задать с помощью ||
Python скрипт по расписанию
To запустить .py скрипт из произвольной директории - перейдите в
неё и execute $(which python3) название файла
Например:
crontab -e
* * * * * cd python_scripts && $(which python3) script.py