{{description>Системным администраторам, да и обычным пользователям часто приходится автоматизировать различные задачи по обслуживанию и работе с Linux с помощью скриптов. Это очень удобно, вы просто запускаете скрипт, и он делает все что необходимо без вашего вмешательства. Следующий шаг в этом пути - настроить автоматически запуск нужного скрипта в нужное время}}
====== Запуск скрипта по расписанию ======
[[ http://wiki.mihanik.net/doku.php?id=операционные_системы:linux:планировщик_задач:запуск_скрипта_по_расписанию&do=export_pdf | Экспорт в PDF ]] ~~ODT~~
Дата создания: 2024/05/13 02:48 (C) mihanik
{{indexmenu>.#1|js navbar nocookie}}
===== Дано =====
Есть некоторый скрипт автоматизирующий некоторые действия.
===== Надо =====
Запускать этот скрипт по определённому расписанию.
===== Решение =====
Предположим, что наш скрипт имеет имя **/opt/scripts/MyScript.sh** .
==== Шаг 1 ====
Открываем терминал.
Все остальные команды будем выполнять в терминале.
При помощи команды
sudo su
становимся суперпользователем **root**.
==== Шаг 2 ====
Начинаем редактировать задачи планировщика Linux при помощи команды
crontab -e
Откроется окно со списком запланированных задач. Список задач - это обычный текстовый файл.
Важно! \\ Список задач может быть пустым.
{{ :операционные_системы:linux:планировщик_задач:addtask-1.png?direct&600 |}}
==== Шаг 3 ====
В конце файла добавляем новое задание
1 0 * * * /opt/scripts/MyScript.sh
Это задание будет выполняться каждый день в 0 часов 1 минуту.
Важно! \\ В конце строки обязательно нажимаем клавишу **** чтобы ниже добавленной строки была новая пустая строчка.
{{ :операционные_системы:linux:планировщик_задач:addtask-2.png?direct&600 |}}
==== Шаг 4 ====
Сохраняем изменения и выходим из текстового редактора.
Видим, что было добавлено новое задание.
{{ :операционные_системы:linux:планировщик_задач:addtask-3.png?direct&600 |}}
==== Синтаксис Crontab ====
Время задается особым синтаксисом.
минута час день месяц день_недели /путь/к/исполняемому/файлу
* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- день недели (0—7) (воскресенье = 0 или 7)
| | | ------- месяц (1—12)
| | --------- день месяца (1—31)
| ----------- час (0—23)
------------- минута (0—59)
Нужно сказать, что обязательно нужно писать полный путь к команде, потому что для команд, запускаемых от имени cron переменная среды PATH будет отличаться, и сервис просто не сможет найти вашу команду. Это вторая самая распространенная причина проблем с Cron. Дата и время указываются с помощью цифр или символа '*'. Этот символ означает, что нужно выполнять каждый раз, если в первом поле - то каждую минуту и так далее. Ну а теперь перейдем к примерам.
===== Источники =====
* https://losst.pro/nastrojka-cron?ysclid=lw4cwih8n7116879797
* https://ru.wikipedia.org/wiki/Cron
[[#top|⇑ Наверх ⇑]]