{{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|⇑ Наверх ⇑]]