Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:cron [2011/04/24 00:10] [Выбор времени выполнения задания] |
wiki:cron [2013/03/26 18:18] [Примеры] |
||
---|---|---|---|
Строка 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 bash>DISPLAY=:0.0</code> | ||
===== Выбор времени выполнения задания ===== | ===== Выбор времени выполнения задания ===== | ||
- | |||
Время запуска представляется в таком виде: | Время запуска представляется в таком виде: | ||
- | <code> | + | <code bash>минута час день_месяца месяц день_недели команда</code> |
- | минута час день_месяца месяц день_недели команда | + | |
- | </code> | + | |
^ Значение ^ Диапазон ^ Дополнительно ^ | ^ Значение ^ Диапазон ^ Дополнительно ^ | ||
Строка 56: | Строка 48: | ||
| sun mon tue wed thu fri sat | | | sun mon tue wed thu fri sat | | ||
| jan feb mar apr may jun jul aug sep oct nov dec | | | jan feb mar apr may jun jul aug sep oct nov dec | | ||
- | ====== Управление при помощи crontab ====== | ||
+ | ==== Дополнительные переменные cron ==== | ||
+ | ^Переменная ^ Описание ^ Эквивалент ^ | ||
+ | | @reboot | Запуск при загрузке | | | ||
+ | | @yearly | Раз в год | 0 0 1 1 * | | ||
+ | | @annually | Тоже что и @yearly | | | ||
+ | | @monthly | Раз в месяц | 0 0 1 * * | | ||
+ | | @weekly | Раз в неделю | 0 0 * * 0 | | ||
+ | | @daily | Раз в день | 0 0 * * * | | ||
+ | | @midnight | В полночь (00:00) | | | ||
+ | | @hourly | Каждый час | 0 * * * * | | ||
+ | |||
+ | ====== Управление при помощи crontab ====== | ||
Добавление файла расписания: | Добавление файла расписания: | ||
<code bash>crontab имя_файла_расписания</code> | <code bash>crontab имя_файла_расписания</code> | ||
Строка 71: | Строка 74: | ||
Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя: | Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя: | ||
- | <code bash>-u username</code> | + | <code bash>crontab -u username</code> |
+ | Учтите, что ''-u'' можно воспользоваться только запуская crontab от лица [[sudo|суперпользователя]]. | ||
====== Примеры ====== | ====== Примеры ====== | ||
- | |||
Каждую минуту: | Каждую минуту: | ||
- | <code>* * * * *</code> | + | <code bash>* * * * *</code> |
+ | |||
+ | Каждый час, с использованием переменных cron: | ||
+ | <code bash>@daily ~/script.sh</code> | ||
Каждый день в 03:15 запускать скрипт: | Каждый день в 03:15 запускать скрипт: | ||
- | <code>15 3 * * * ~/script</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> |
Тоже что и выше, но расписанное полностью: | Тоже что и выше, но расписанное полностью: | ||
- | <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 версии ===== |
- | Есть очень полезная программа: Scheduled tasks(gnome-schedule). Она представляет собой графический интерфейс для cron, и будет полезна новичкам, так как понятным языком описывает время выполнения задачи. К примеру: | + | ==== GTK+ ==== |
- | <code> | + | Есть очень полезная программа: **Scheduled tasks**(gnome-schedule). Она представляет собой графический интерфейс для cron, и будет полезна новичкам, так как понятным языком описывает время выполнения задачи. К примеру: |
- | 15 * * * * | + | <code>15 * * * *</code> |
- | </code> | + | |
каждый час в 15 минут; | каждый час в 15 минут; | ||
- | <code> | + | <code>* 0 * * *</code> |
- | * 0 * * * | + | |
- | </code> | + | |
каждую минуту, между 00:00 и 00:59. | каждую минуту, между 00:00 и 00:59. | ||
+ | |||
+ | ==== KDE ==== | ||
+ | Для [[KDE]] существует **Task Scheduler**, который встраивается в окно настройки системы. | ||
====== Ссылки ====== | ====== Ссылки ====== |