cron
Содержание
- cron
- Листинг
- Основные настройки
- Не обязательные настройки
- Выбор времени выполнения задания
- Дополнительные переменные cron
- Управление при помощи crontab
- Примеры
- Ссылки
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, который встраивается в окно настройки системы.
Ссылки