Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:cron [2012/11/14 20: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 * * * * 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 Администрирование}} | ||