MyTetra Share
Делитесь знаниями!
CRON
26.12.2018
14:06
Автор: alensav
Текстовые метки: cron, ubuntu
Раздел: MyTetra - Ubuntu_Command

cron

Содержание

cron – программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени. Для редактирования заданий используется утилита crontab.

Листинг

Нельзя изменять файл расписания, просто открыв его в текстовом редакторе. Для его редактирования необходимо использовать команду crontab -e.

Простой пример файла расписания. Создание снимка экрана каждый час:

SHELL=/bin/bash

MAILTO=username

0 * * * * scrot

Основные настройки

Выбор среды для исполняемых задач:

SHELL=/bin/bash

Имя пользователя, которому будет послано сообщение о выполнении задания:

MAILTO=username

Вместо имени, также можно использовать электронный адрес:

MAILTO=example@example.org

Не обязательные настройки

Задаем каталог пользователя:

HOME=

Задаем каталоги исполняемых фалов:

PATH=/sbin:/bin:/usr/sbin:/usr/bin

Прописываем дисплей, если запускаемый по крону скрипт должен использовать графику:

DISPLAY=:0.0

Выбор времени выполнения задания

Время запуска представляется в таком виде:

минута час день_месяца месяц день_недели команда


Значение

Диапазон

Дополнительно

минуты

0-59

часы

0-23

дни месяца

1-31

месяцы

1-12

можно задавать и в 3-х буквенном варианте

дни недели

0-6

можно задавать и в 3-х буквенном варианте (0=воскресенье)

Символ '*' подразумевает - любое значение.

Минимальное время 1-а минута. Это связано с тем что cron каждую минуту просматривает список заданий, и ищет которые нужно выполнить.


Дни недели и месяца в трех буквенном варианте:

sun mon tue wed thu fri sat

jan feb mar apr may jun jul aug sep oct nov dec

Дополнительные переменные 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

Добавление файла расписания:

crontab имя_файла_расписания

Вывести содержимое текущего файла расписания:

crontab -l

Удаление текущего файла расписания:

crontab -r

Редактирование текущего файла расписания (при первом запуске будет выведен список поддерживаемых текстовых редакторов):

crontab -e

Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:

crontab -u username

Учтите, что -u можно воспользоваться только запуская crontab от лица суперпользователя.

Примеры

Каждую минуту:

* * * * *

Каждый час, с использованием переменных cron:

@hourly ~/script.sh

Каждый день в 03:15 запускать скрипт:

15 3 * * * ~/script.sh

Каждый понедельник:

0 0 * * 1

Каждый четный час:

* */2 * * *

Тоже что и выше, но расписанное полностью:

* 0,2,4,6,8,10,12,14,16,18,20,22 * * *

Каждые 10 минут:

*/10 * * * *

Новый год :

59 23 31 dec *

Каждый будний день в 22:00:

0 22 * * 1-5

Запуск программы с графической оболочкой (GUI); каждую минуту будет отображаться сообщение с текстом «It work!»:

0-59 * * * * DISPLAY=:0 gdialog --msgbox "It work\!" 25 20 > /dev/null

* где DISPLAY=:0 - номер монитора

GUI версии

GTK+

Есть очень полезная программа: Scheduled tasks(gnome-schedule). Она представляет собой графический интерфейс для cron, и будет полезна новичкам, так как понятным языком описывает время выполнения задачи. К примеру:

15 * * * *

каждый час в 15 минут;

* 0 * * *

каждую минуту, между 00:00 и 00:59.

KDE

Для KDE существует Task Scheduler, который встраивается в окно настройки системы.

Ссылки

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования