Задание Cron или Cron - это планировщик на основе времени, распространенный в системах Linux / Unix. Он планирует периодическое выполнение определенных пользовательских задач в фиксированную дату, время или интервалы. Большинство этих задач представляют собой сценарии для выполнения таких функций, как резервное копирование и т. Д. Для создания этих заданий cron мы используем команды crontab. Crontab - это команда / утилита UNIX, используемая для создания заданий cron и управления ими.
Как вы увидите ниже, создать и отредактировать задание cron довольно просто. Самое удивительное, что вам не нужно перезапускать cron или даже компьютер после создания или редактирования задания cron. Просто сохраните файл, и все готово.
Распространенное использование Cron Jobs
- Установка аппаратного времени: протокол сетевого времени используется многими компьютерами для установки системного времени, но не устанавливает аппаратное время. С помощью cron вы можете установить аппаратное время на основе системного времени.
- Планирование задач и запуск программ, запускающих ежедневные программы: с помощью службы cron вы можете запускать многие системные службы, которые требуют ежедневных запросов, например Logwatch.
- Автоматическая очистка каталога, запуск программ резервного копирования и многое другое.
Основные части команды cron
Стандартный синтаксис crontab следующий:
a b c d e ИМЯ ПОЛЬЗОВАТЕЛЯ / путь / к / выходным данным сценария
1.Время и дата, а также степень повторяемости задания указываются в пяти полях:
-
- а: Минуты: (начиная с 0–59)
- б: Часы: (начиная с 0–23 )
- c: Дни: (начиная с 0–31 )
- d: Месяцы: (начиная с 0–12 )
- е: Дни недели: (начиная с 0–7. )
- а: Минуты: (начиная с 0–59)
Примечание. Дни начинаются с понедельника. 0 и 7 представляют воскресенье
2. ИМЯ ПОЛЬЗОВАТЕЛЯ
: Не забудьте заменить это на свое имя пользователя
3. Конкретное место и сценарий, который должен быть выполнен cron, указаны в третьем сегменте:
/ путь / к / скрипту
4. В последнем разделе определяется уведомление пользователя о завершении задания как способ отслеживания задач:
выход
Однако ваш почтовый ящик может быть заполнен второстепенными задачами, которые часто решаются. Чтобы избежать этого, вы можете отключить автоматический вывод электронной почты, добавив строку ниже в свою команду cron:
> / dev / null 2> & 1 e.g a b c d e ИМЯ ПОЛЬЗОВАТЕЛЯ / путь / к / скрипту> / dev / null 2> & 1
Кроме того, cron использует еще четыре значения, используемых при указании нескольких значений в поле. Они есть:
- Звездочка (*): Относится ко всем значениям в поле.
- Запятая (,): Используйте для разделения списка значений в команде cron.
- Бросаться (-): Укажите диапазон значений.
- Косая черта (/): делит значение на разные этапы.
Настройка заданий cron
Команды crontab отвечают за создание и редактирование заданий cron, поскольку файлы cron не должны редактироваться напрямую. Crontab определяет, как вы можете создавать, редактировать, перечислять, отлаживать, устанавливать и удалять задачи cron.
Перед тем, как приступить к работе с заданиями cron, важно убедиться, что ваш рабочий стол или сервер Linux обновлен, выполнив следующие команды:
sudo apt update sudo apt upgrade
Если в вашей системе не установлен пакет cron, установите его с помощью следующей команды:
sudo apt-get install cron
Как отредактировать файл crontab?
Чтобы завершить процесс, вам нужно будет настроить задание cron. Пользователь, выполнивший вход при создании задания cron, автоматически становится владельцем. Это можно изменить, создав владельца вакансии, который будет отвечать за управление заданием cron, как мы увидим в этом посте.
Чтобы открыть файл конфигурации crontab для текущего пользователя, вошедшего в систему, выполните следующую команду:
crontab -e
Система предложит вам выбрать подходящий редактор. В нашем случае мы выберем первый вариант (редактор nano).
Вы можете добавить по одной запланированной задаче в каждой строке в соответствии с вашими предпочтениями.
После добавления задач завершите сохранением файла и выйдите. Все предоставленные инструкции будут прочитаны и выполнены демоном cron. Изменения будут применены даже без перезапуска системы, так как репозиторий обновляется автоматически.
Редактировать crontab для другого пользователя
Crontab можно редактировать для разных пользователей, используя команду в синтаксисе ниже:
crontab -u другое_имя_пользователя -e
Как использовать специальные символы в командах crontab
Персонажи и операторы требуют большей настройки вашей системы, поскольку они расширяют возможности задачи cron.
- Косая черта используется для разделения строки времени на указанные шаги. Например, чтобы запускать резервное копирование каждые 30 минут, мы можем использовать:
* / 30 * * * *
- Звездочка (*) используется для выполнения всех значений, которые должны быть выполнены. Например:
* / 15 ***
- Прочерк (-) используется для определения диапазона действий, например количества дней. Для
Например, выполняя код в 6 утра каждый будний день, мы будем использовать;
0 6 * * 1-5 / корень / резервная копия.ш
Здесь 06 означает 6 утра, 1-5 означает количество дней (с понедельника по пятницу).
- Запятая указывает отдельные экземпляры, когда должен запускаться код:
0 4 * * 2,4 / корень / резервная копия.ш
Приведенная выше команда выполнит ваш код сценария в 4 часа утра во вторник и четверг.
- Вы также можете комбинировать различные подстановочные знаки, чтобы еще больше настраивать свои команды. Например, чтобы выполнять наш скрипт через день через 35 минут после часа, мы можем использовать следующую команду:
35 1-23 / 2 * * * / путь / к / скрипту / скрипту.ш
1-23 указывает диапазон часов, / 2 устанавливает интервал на каждый второй час.
Параметры Cron
- Список всех заданий cron
Вы можете указать список заданий cron в вашей системе, не разблокируя файл конфигурации crontab. Это можно сделать, запустив терминал и набрав команду ниже:
crontab -l
Эта команда перечисляет все задания cron, присутствующие в вашей системе.
- Удалить все задания crontab
Чтобы удалить все команды crontab, вы можете использовать следующую команду:
crontab -r
- Удалить задание cron для другого пользователя.
crontab -r -u другое-имя пользователя
Используйте строки в Crontab
Строки - чрезвычайно полезные инструменты для разработчиков, поскольку они позволяют избежать повторяющейся записи сегментов кода. К счастью, crontab поддерживает различные значения строк. Они включают:
@ почасово:
-то же, что и - «0 * * * *» (Выполняется один раз каждые час)@полночь:
-то же, что и - «0 0 * * *» (Выполняется один раз каждые день)@ежедневно:
так же, как полночь@ еженедельно:
-то же, что - «0 0 * * 0» (Выполняется один раз каждые неделя)@monthly:
-то же, что - «0 0 1 * *» (Выполняется один раз каждые месяц)@ ежегодно:
-то же, что и - «0 0 1 1 *» (Выполняется один раз каждые год)@ год:
похоже на @annually@перезагружать:
Выполняется один раз после каждой перезагрузки / перезапуска / запуска.
Хороший пример; если у вас есть сценарий резервного копирования, который вы хотите запускать каждый день, используйте следующую команду:
@daily / путь / к / backup_script.ш
Примеры заданий cron
Вот список основных заданий cron, которые можно использовать при начале работы:
-
- Чтобы запускать скрипт каждую минуту:
* * * * * / ваш / скрипт / путь.ш
- Чтобы запускать скрипт каждые 40 минут:
40 * * * * / ваш / скрипт / путь.ш
- Чтобы запускать скрипт каждый час:
0 * * * * / ваш / скрипт / путь.ш
- Чтобы запускать скрипт каждую полночь:
0 0 * * * / ваш / скрипт / путь.ш
- Чтобы запускать скрипт каждые 23 минуты после полуночи, 2:00 и 4:00 каждый день:
23 0-23 / 2 * * * / ваш / скрипт / путь.ш
- Чтобы запустить скрипт на 4.05 каждое воскресенье.
5 4 * * солнце / ваш / скрипт / путь.ш
- Запускать скрипт в 22:00 по будням.
0 22 * * 1-5 / ваш / скрипт / путь.ш
- Для запуска скрипта 1 декабря - полночь.
0 0 0 12 * / ваш / скрипт / путь.ш
- Чтобы запустить скрипт в субботу в полночь.
0 0 * * 6 / ваш / скрипт / путь.ш
- Запускать скрипт каждый час.
0 * * * * / ваш / скрипт / путь.ш
- Чтобы запускать скрипт каждую минуту:
С помощью этих базовых примеров вы получите более глубокое понимание последовательности и того, как ее можно изменить.
Ограничение доступа Cron
Мы видим, что cron-задания могут быть весьма кстати, особенно если вы хотите автоматизировать свои задачи. Однако это также может быть рискованно, если система позволяет любому пользователю создавать задание cron. Даже если это не влияет на личные данные, некоторые задания cron могут отнимать довольно много системных ресурсов, что приводит к отставанию ПК. Чтобы избежать таких сценариев, системный администратор (пользователь root) может создать / etc / cron.позволять
или же / etc / cron.отказываться от
файл, содержащий только пользователей, которые могут 'создавать / не создавать' работа cron.
В / etc / cron.позволять
файл содержит пользователей, которые могут создавать, редактировать, отображать или удалять файлы crontab. Если этот файл не существует, все пользователи могут создавать задания cron и управлять ими, кроме тех, которые находятся в / etc / cron.отказываться от
файл. Если ни один из этих файлов отсутствует, для запуска команды crontab требуются права суперпользователя.
Теперь, когда вы запретили пользователям без полномочий root создавать задания cron, если они уже были, вы можете подумать о добавлении их заданий cron в корневой файл crontab. Но вот загадка: добавляя свои cron-задания в корневой crontab, разве это не запускает их cron-задания как root?? Ну, вот и важность поля USERNAME, которое мы обсуждали выше в синтаксисе команды cron. Например, команда ниже:
0 * * * * fosslinux / путь / к / скрипту.ш
Будет работать как пользовательское задание cron «fosslinux», а не как пользователь root.
Заключение
Теперь у вас есть четкое руководство по использованию заданий Cron для автоматизации различных задач в вашей системе. Это не должно сбивать вас с толку со стартовыми приложениями. Используйте приведенные выше примеры, чтобы попытаться автоматизировать простые скрипты. Со временем вы можете комбинировать специальные символы и подстановочные знаки, чтобы выполнять гораздо более приземленные задачи. Если вы только начинаете, было бы здорово прочитать наш пост в руководстве по созданию сценариев bash с примерами, которые помогут вам создать свой первый сценарий.