Управление задачами cron в Linux | ВесьТоп создание и продвижение сайтов

Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

Эффективность стратегий продвижения подтверждается сотрудничеством с крупными клиентами и отзывами о нашей работе.

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

Управление задачами cron в Linux

Задачи Cron позволяют пользователям Linux / Unix выполнять команды или сценарии в определенное время — месяц, день недели, час и минуту. Мы также можем запланировать периодический запуск скриптов и команд. Cron — один из самых полезных инструментов в операционных системах Linux / UNIX.

Обычно он используется для выполнения административных задач, таких как архивирование или очистка каталогов и т. Д. Служба cron (демон crond) работает в фоновом режиме и постоянно проверяет файл / etc / crontab, каталоги /etc/cron.*/ и каталог / var / spool / cron /.

Команда crontab

Вы должны использовать команду crontab для редактирования / создания, установки, удаления или составления списка задач cron. У каждого пользователя может быть свой собственный файл crontab, и хотя это файлы в / var / spool / cron / crontabs, они не предназначены для непосредственного редактирования.

Вы должны использовать команду crontab для редактирования или настройки ваших собственных задач cron.

Типы файлов конфигурации для cron

Существуют разные типы файлов конфигурации:

Системный crontab: используется системными службами и критическими задачами, требующими привилегий root. Шестое поле (см. Описание поля ниже) — это имя пользователя, от имени которого должна выполняться команда. Это позволяет системному crontab выполнять команды как любой пользователь.

Пользовательские crontab: пользователь может устанавливать свои собственные задачи cron с помощью команды crontab. Шестое поле — это команда выполнения, и все команды выполняются от имени пользователя, создавшего соответствующий crontab.

Создать задачу cron

Чтобы создать свой собственный файл crontab, введите в командной строке следующую команду:

sudo crontab -e

Нужно ли перезапускать crond после изменения crontab?

Нет. Crond проверяет время модификации всех crontab и перезагружает те, которые были изменены. Таким образом, crond не нужно перезапускать каждый раз при изменении файла crontab.

Синтаксис crontab

При входе в crontab мы следуем следующему синтаксису:

1 2 3 4 5 / домашний / пользователь / каталог / команда

или

1 2 3 4 5 /dir/dir/script.sh

где:

1: Минута (0-59) — значение минут; 2: Часы (0-23) — стоимость в час; 3: Day (0-31) — значение дня месяца; 4: Месяц (0-12 [12 == декабрь]) — выбор месяца; 5: День недели (0-7 [7 или 0 == воскресенье]) — выбор дня недели; / home / user / dir / command — имя скрипта или команды для запуска;

Если вы откроете файл / etc / crontab с помощью команды sudo nano / etc / crontab, вы увидите графическое представление правильного синтаксиса crontab:

# Пример определения задания: # .—————- минута (0 — 59) # | .————- час (0 — 23) # | | .———- день месяца (1 — 31) # | | | .——- месяц (1 — 12) ИЛИ январь, февраль, март, апр … # | | | | .—- день недели (0 — 6) (воскресенье = 0 или 7) ИЛИ вс, пн, вт, ср, чт, пт, сб # | | | | | # * команда имени пользователя для выполнения

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

1 2 3 4 5 имя пользователя / home / user / dir / command

или

1 2 3 4 5 имя пользователя /dir/dir/script.sh

Управляйте crontab в текстовом редакторе

Управляйте crontab с помощью vim / vi

По умолчанию, когда вы запускаете команду sudo crontab -e, crontab открывается в редакторе vim.

Чтобы войти в задачу cron, сохранить информацию и выйти из vim, выполните следующие действия:

  • нажмите i, чтобы войти в РЕЖИМ ВСТАВКИ;
  • введите задачу cron 1 2 3 4 5 / home / user / dir / command;
  • чтобы удалить всю строку, нажмите dd;
  • нажмите ESC, чтобы выйти из РЕЖИМА ВСТАВКИ;
  • нажмите: wq, чтобы сохранить файл и выйти из vim;

Управляйте crontab через nano

Если у вас нет опыта работы с vim, вы можете управлять crontab через редактор nano, введя следующую команду:

sudo env EDITOR = nano crontab -e

Удалите всю строку с помощью сочетания клавиш Ctrl + K, сохраните файл с помощью Ctrl + O и Enter, выйдите из nano с помощью Ctrl + X.

В терминале получаем подтверждение на создание новой задачи cron:

crontab: установка нового crontab

Выполнить задачу cron

Если мы хотим, чтобы скрипт /root/script.sh запускался каждый год в первый день марта в 4:25 утра, соответствующий crontab будет выглядеть так.

Сначала откройте crontab для редактирования с помощью предпочитаемого вами редактора:

sudo crontab -e или sudo env EDITOR = nano crontab -e

Добавьте следующую запись:

25 4 1 3 * /root/script.sh

Сохраните и закройте файл.

Использование операторов в синтаксисе crontab

Операторы позволяют нам указывать несколько значений в поле. Есть четыре оператора:

  • Звездочка (*): указывает все возможные значения для поля. Например, звездочка в поле «ежечасно» для часа будет соответствовать каждому часу, а звездочка в поле «месяц» будет соответствовать каждому месяцу.
  • Запятая (,): указывает список значений, например: «7,14,21,28».
  • Прочерк (-): указывает диапазон значений, например: «5-10» дней, что эквивалентно вводу «5,6,7,8,9,10» с помощью оператора запятой.
  • Разделитель (/): указывает шаг в соответствующем интервале, например: «0–23 / 3» можно использовать в поле часов, чтобы указать выполнение команды каждые три часа. Значение минут «0-59 / 10» указывает серверу запускать сценарий каждые 10 минут. Шаги также можно указать после звездочки, поэтому, чтобы указать интервал в шесть часов, введите «* / 6».

Чрезвычайно полезное приложение для создания правильных значений crontab для времени и интервала можно найти на этом сайте https://cron.help/.

Как отключить электронную почту cron?

По умолчанию вывод команды или сценария (если есть) отправляется на вашу системную учетную запись электронной почты. Чтобы перестать получать входящую почту от crontab, вы должны добавить> / dev / null 2> 1 в конце задачи:

0 3 * * * /root/script.sh> / dev / null 2> 1

Чтобы отправлять почту на конкретную учетную запись электронной почты, например e-name@example.com, нам необходимо определить переменную MAILTO следующим образом:

MAILTO = "e-name@example.com" 0 3 * * * /root/script.sh> / dev / null 2> 1

Команды для управления задачами cron

Показать список задач cron

  • crontab -l — отображает список всех задач cron;
  • crontab -u username -l — отображает список всех задач cron указанного пользователя;

[common @ vm ~] $ sudo crontab -l no crontab для root [common @ vm ~] $ crontab -l no crontab для общего [common @ vm ~] $

Удалить задачи cron

  • crontab -r — удаляет все существующие задачи cron;
  • crontab -r -u username — удаляет имя пользователя пользовательских задач cron. Команда должна запускаться от имени пользователя root;

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

Вместо первых пяти полей вы можете использовать одно из восьми специальных выражений, что сэкономит время и снизит вероятность синтаксических ошибок.

Специальное выражение Значение
@перезагружать Запускается только один раз при запуске сервера.
@yearly Выполняется один раз в год «0 0 1 1 *».
@ ежегодно (так же, как @yearly)
@monthly Выполняется раз в месяц «0 0 1».
@weekly Выполняется раз в неделю «0 0 0».
@повседневная Выполняется 1 раз в сутки «0 0 *».
@ полночь (так же, как @daily)
@hourly Выполняется раз в час на «0».

Следующая задача cron создает ежедневный архив:

@daily /home/user/dir/mybackup.sh

Каталоги Crontab

Содержимое файла / etc / crontab:

ОБОЛОЧКА = / bin / bash ПУТЬ = / sbin: / bin: / usr / sbin: / usr / bin MAILTO = root

Если SHELL не имеет значения, cron будет использовать оболочку по умолчанию — sh. Если переменная PATH не имеет значения, мы должны указать абсолютный путь к файлам. MAILTO указывает, на какой системный аккаунт будет отправлен вывод cronjobs.

Cron читает файлы в каталоге /etc/cron.d/. Как пользователь root или пользователь с привилегиями sudo, мы можем использовать следующие каталоги для настройки задач cron:

Справочник Описание
/etc/cron.d/ Помещает все скрипты в этот каталог и вызывает их из файла / etc / crontab
/etc/cron.daily/ Раз в час запускает все скрипты в каталоге.
/etc/cron.monthly/ Запускает все скрипты в каталоге один раз в месяц.
/etc/cron.weekly/ Запускает все сценарии в каталоге один раз в неделю.
Читайте так же:
Not found

Нам доверяют

Интернет магазин