Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:cron [2011/04/24 00:08] [Ссылки] |
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 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>@hourly ~/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**, который встраивается в окно настройки системы. | ||
| ====== Ссылки ====== | ====== Ссылки ====== | ||