Планировщик заданий cron в Debian\Ubuntu\Mint
Доброго Вам времени суток. В одной из приведущих публикаций я описывал простой скрипт для резервного копирования папки на Flash-накопитель. Запускать его можно вручную, через автозапуск и по-расписанию, как будет описано ниже. Статья актуальна для всех дистрибутивов.
cron — классическая утилита планировки задач в UNIX-лайк ОС, использующайся для выполнения заданий в определённое время. Действия описываются командами, в файлах crontab. Файлы crontab отдельных пользователей, находятся в папке /usr/spool/cron/ или /var/spool/cron/tabs/. Для их редактирования исоздания обычно используют команду crontab -e . Файлы crontab, используемые для управления всей системой, располагаются в директории /etc/cron.d/.
Сначал нужно-бы посмотреть, что уже есть в файле конфига. Для этого нужна команда :
crontab -l
У меня система выдала уведомление, что для пользователя нет файла конфигурации:
[email protected] ~ $ crontab -l no crontab for agat
Ничего страшного — создаем файл вручную и выставляем на него права на запись, чтение и выполнение. Более подробно про установку прав на файлы в Линукс можно почитать в одной из наших публикаций.
sudo nano /var/spool/cron/agatchmod a+rwx /var/spool/cron/agat
Уже из-под пользователя выполняю команду для добавления\правки заданий:
sudo agat
crontab -e
Эта команда открывает cron файл текущего юзера через редактор по умолчанию в системе. Далее добавляем строчку в формате:
,где звездочки — это цифры:
1. Минуты (0 — 59)
2. Часы (0 — 23)
3. День месяца (0 — 31)
4. Месяц (1 -12)
5. День недели (0 — 6, 0 — воскресенье)
Я достаточно активно работаю с папкой и содержимое ее для меня действительно важно.Строчка:
0*/4 * * * /home/agat/wwwbackup.sh
запускает скрипт каждые 4 часа. Можно и так:
0 0,4,8,12,16,20 * * * 0*/4 * * * /home/agat/wwwbackup.sh
Остается проверить. Через 4 часа время создания файла бекапа обновилось.
https://studylinux.ru/planirovshhik-zadanij-cron-v-debianubuntumint.html 2016-06-27T11:13:00+03:00 admin C чего начать? Debian Mint Ubuntu Администрирование Другие Другие приложения Программы Руководства Справочники команд Статьи Утилиты Утилиты Хаки bash,cron,crontab,Debian\Ubuntu\Mint,Настройка системы,Системные настройки,Системные утилиты,скрипты,Справочник команд,Утилиты,Хаки
Доброго Вам времени суток. В одной из приведущих публикаций я описывал простой скрипт для резервного копирования папки на Flash-накопитель. Запускать его можно вручную, через автозапуск и по-расписанию, как будет описано ниже. Статья актуальна для всех дистрибутивов. cron — классическая утилита планировки задач в UNIX-лайк ОС, использующайся для выполнения заданий в определённое.
Настройка планировщика Cron в Linux
Планировщик заданий является по праву одним из важных компонентов системы. По умолчанию, в дистрибутивах Linux, а также FreeBSD, используется планировщик заданий Cron. Рассмотрим как его настроить.
Настроить cron можно несколькими способами. Самый простой и быстрый — указать задание руками в файл /etc/crontab. Проблема в том, что это может сделать только пользователь root.
Структура файла /etc/crontab представляет собой последовательность установок даты и времени, имени пользователя от которого выполняется задача и явное указание исполняемого файла.
# m h dom mon dow user command
# — строка закомментирована, т.е. не выполняется планировщиком
m — минуты. Диапазон значений 0-59
h — часы. Диапазон значений 0-23.
dom — day of month — день месяца (число). Диапазон значений 1-31
mon — месяц. Диапазон значений 1-12
dow — day of week — день недели. указывается числом, где 0 — воскресенье, 6 — суббота.
user — пользователь от которого выполняется задача.
command — выполняемая задача.
Важно! Значения минут, часов, дней месяца, дней недели, а также месяца могут быть * (звездочкой) принимая все доступные значения. Также можно использовать список параметров разделенных запятой.
Примеры разберем подробнее немного позже.
Простым пользователям доступна системная утилита crontab. Для гибкости использования используются параметры:
Используется для редактирования или создания файла расписания для текущего пользователя
Вывод существующих задач в расписании пользователя
Удаление файла расписания текущего пользователя
Работа с расписаниями указанных пользователей. Выполняется только от пользователя root
Для этого в консоли пишем команду:
Запустится редактор файла используемый по умолчанию (Ubuntu — nano/vi, FreeBSD — ee), в нашем случае mcedit из пакета Midnight Commander.
Синтаксис команд идентичен как и для файла /etc/crontab, за исключением отсутствия параметра имени пользователя. Это значит, что после сохранения файла, все задачи будут выполняться от текущего пользователя.
Сохраняем файл, выходим из редактора и проверяем список заданий crontab -l.
Проверим как работает удаление файла заданий — crontab -r.
Важно! Программа не спрашивает уверены ли вы в удалении файла заданий. Если нужно удалить конкретное задание, следует использовать crontab -e.
Для администратора важно, чтобы не все пользователи могли пользоваться планировщиком. Для этих целей можно использовать файлы /etc/cron.allow и /etc/cron.deny (в некоторых дистрибутивах эти файлы должны размещаться в /etc/cton.d). По умолчанию, использование cron разрешено всем пользователям.
Примеры использования в файле /etc/crontab.
Выполнение задачи каждые 5 минут от пользователя root:
Перезагрузка сервера в 0:00 в первый день месяца (исключительно как пример):
Выполнение скрипта с понедельника по пятницу в полночь:
Ошибка в том, что скрипт будет запускаться с понедельника по пятницу каждую минуту с 0:00 по 0:59
В заданиях назначаемых через crontab -e (т.е. от текущего пользователя) не указывается параметр имени пользователя, в случае примеров — root.
На что еще следует обратить внимание:
Все пути до исполняемых файлов следует писать абсолютными.
Скрипты исполняются из корневой директории, а следовательно, при написании скрипта следует указывать рабочий каталог, либо абсолютные пути до целевых файлов (если в ходе работы скрипта генерируются файлы-отчета и им подобные)