Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:cron [2012/11/14 14:45] [Не обязательные настройки] |
wiki:cron [2018/06/27 02:26] (текущий) [Примеры] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== cron ====== | ====== cron ====== | ||
+ | **cron** -- программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени. Для редактирования заданий используется утилита ''crontab''. | ||
- | ====== Описание ====== | + | ===== Листинг ===== |
- | + | ||
- | Программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени. | + | |
- | + | ||
- | Для редактирования заданий используется утилита crontab. | + | |
- | + | ||
- | ====== Листинг ====== | + | |
<note important>Нельзя изменять файл расписания, просто открыв его в текстовом редакторе. Для его редактирования необходимо использовать команду ''crontab -e''.</note> | <note important>Нельзя изменять файл расписания, просто открыв его в текстовом редакторе. Для его редактирования необходимо использовать команду ''crontab -e''.</note> | ||
Простой пример файла расписания. Создание снимка экрана каждый час: | Простой пример файла расписания. Создание снимка экрана каждый час: | ||
- | <code> | + | <code bash>SHELL=/bin/bash |
- | SHELL=/bin/bash | + | |
MAILTO=username | MAILTO=username | ||
- | 0 0-23 * * * scrot | + | 0 * * * * scrot</code> |
- | </code> | + | |
===== Основные настройки ===== | ===== Основные настройки ===== | ||
- | |||
Выбор среды для исполняемых задач: | Выбор среды для исполняемых задач: | ||
- | <code>SHELL=/bin/bash</code> | + | <code bash>SHELL=/bin/bash</code> |
Имя пользователя, которому будет послано сообщение о выполнении задания: | Имя пользователя, которому будет послано сообщение о выполнении задания: | ||
- | <code>MAILTO=username</code> | + | <code bash>MAILTO=username</code> |
Вместо имени, также можно использовать электронный адрес: | Вместо имени, также можно использовать электронный адрес: | ||
- | <code>MAILTO=example@example.org</code> | + | <code bash>MAILTO=example@example.org</code> |
==== Не обязательные настройки ==== | ==== Не обязательные настройки ==== | ||
- | |||
Задаем каталог пользователя: | Задаем каталог пользователя: | ||
- | <code>HOME=</code> | + | <code bash>HOME=</code> |
Задаем каталоги исполняемых фалов: | Задаем каталоги исполняемых фалов: | ||
- | <code>PATH=/sbin:/bin:/usr/sbin:/usr/bin</code> | + | <code bash>PATH=/sbin:/bin:/usr/sbin:/usr/bin</code> |
Прописываем дисплей, если запускаемый по крону скрипт | Прописываем дисплей, если запускаемый по крону скрипт | ||
должен использовать графику: | должен использовать графику: | ||
- | <code>DISPLAY=:0.0</code> | + | <code bash>DISPLAY=:0.0</code> |
===== Выбор времени выполнения задания ===== | ===== Выбор времени выполнения задания ===== | ||
- | |||
Время запуска представляется в таком виде: | Время запуска представляется в таком виде: | ||
- | <code> | + | <code bash>минута час день_месяца месяц день_недели команда</code> |
- | минута час день_месяца месяц день_недели команда | + | |
- | </code> | + | |
^ Значение ^ Диапазон ^ Дополнительно ^ | ^ Значение ^ Диапазон ^ Дополнительно ^ | ||
Строка 61: | Строка 50: | ||
==== Дополнительные переменные cron ==== | ==== Дополнительные переменные cron ==== | ||
- | |||
^Переменная ^ Описание ^ Эквивалент ^ | ^Переменная ^ Описание ^ Эквивалент ^ | ||
| @reboot | Запуск при загрузке | | | | @reboot | Запуск при загрузке | | | ||
Строка 73: | Строка 61: | ||
====== Управление при помощи crontab ====== | ====== Управление при помощи crontab ====== | ||
- | |||
Добавление файла расписания: | Добавление файла расписания: | ||
<code bash>crontab имя_файла_расписания</code> | <code bash>crontab имя_файла_расписания</code> | ||
Строка 87: | Строка 74: | ||
Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя: | Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя: | ||
- | <code bash>-u username</code> | + | <code bash>crontab -u username</code> |
+ | Учтите, что ''-u'' можно воспользоваться только запуская crontab от лица [[sudo|суперпользователя]]. | ||
====== Примеры ====== | ====== Примеры ====== | ||
- | |||
Каждую минуту: | Каждую минуту: | ||
- | <code>* * * * *</code> | + | <code bash>* * * * *</code> |
Каждый час, с использованием переменных cron: | Каждый час, с использованием переменных cron: | ||
- | <code>@daily ~/script.sh</code> | + | <code bash>@hourly ~/script.sh</code> |
Каждый день в 03:15 запускать скрипт: | Каждый день в 03:15 запускать скрипт: | ||
- | <code>15 3 * * * ~/script.sh</code> | + | <code bash>15 3 * * * ~/script.sh</code> |
Каждый понедельник: | Каждый понедельник: | ||
- | <code>0 0 * * 1</code> | + | <code bash>0 0 * * 1</code> |
Каждый четный час: | Каждый четный час: | ||
- | <code>* */2 * * *</code> | + | <code bash>* */2 * * *</code> |
- | + | ||
- | Каждый 10 минут: | + | |
- | <code>*/10 * * * *</code> | + | |
Тоже что и выше, но расписанное полностью: | Тоже что и выше, но расписанное полностью: | ||
- | <code>* 0,2,4,6,8,10,12,14,16,18,20,22 *</code> | + | <code bash>* 0,2,4,6,8,10,12,14,16,18,20,22 * * *</code> |
+ | |||
+ | Каждые 10 минут: | ||
+ | <code bash>*/10 * * * *</code> | ||
Новый год :-D: | Новый год :-D: | ||
- | <code>59 23 31 dec *</code> | + | <code bash>59 23 31 dec *</code> |
Каждый будний день в 22:00: | Каждый будний день в 22:00: | ||
- | <code>0 22 * * 1-5</code> | + | <code bash>0 22 * * 1-5</code> |
- | Запуск программы с графической оболочкой (GUI); каждую минуту будет отображается сообщение с текстом "It work!": | + | Запуск программы с графической оболочкой (GUI); каждую минуту будет отображаться сообщение с текстом "It work!": |
- | <code>0-59 * * * * DISPLAY=:0 gdialog --msgbox "It work!" 25 20 > /dev/null</code> | + | <code bash>0-59 * * * * DISPLAY=:0 gdialog --msgbox "It work\!" 25 20 > /dev/null</code> |
//* где DISPLAY=:0 - номер монитора// | //* где DISPLAY=:0 - номер монитора// | ||
- | ====== GUI версии ====== | + | ===== GUI версии ===== |
- | + | ||
- | ===== GTK+ ===== | + | |
+ | ==== GTK+ ==== | ||
Есть очень полезная программа: **Scheduled tasks**(gnome-schedule). Она представляет собой графический интерфейс для cron, и будет полезна новичкам, так как понятным языком описывает время выполнения задачи. К примеру: | Есть очень полезная программа: **Scheduled tasks**(gnome-schedule). Она представляет собой графический интерфейс для cron, и будет полезна новичкам, так как понятным языком описывает время выполнения задачи. К примеру: | ||
- | <code> | + | <code>15 * * * *</code> |
- | 15 * * * * | + | |
- | </code> | + | |
каждый час в 15 минут; | каждый час в 15 минут; | ||
- | <code> | + | <code>* 0 * * *</code> |
- | * 0 * * * | + | |
- | </code> | + | |
каждую минуту, между 00:00 и 00:59. | каждую минуту, между 00:00 и 00:59. | ||
- | ===== KDE ===== | + | ==== KDE ==== |
+ | Для [[KDE]] существует **Task Scheduler**, который встраивается в окно настройки системы. | ||
- | Для KDE существует **Task Scheduler**, который встраивается в окно настройки системы. | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
* [[http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html|Полезные советы по Linux: Планирование задач с помощью cron и at]] | * [[http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html|Полезные советы по Linux: Планирование задач с помощью cron и at]] | ||
{{tag>cron tips Администрирование}} | {{tag>cron tips Администрирование}} |