Разное

Cron планировщик: Планировщик задач Cron и команда crontab

Содержание

Планировщик задач Cron и команда crontab

«Cron» (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время.

Правила составления заданий планировщика

Задание для планировщика (cron) состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых тире -* или звездочкой **. Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами.

* * * * * выполняемая команда
| | | | |
| | | | —– День недели (0 - 7) (Воскресенье =0 или =7)
| | | ——- Месяц (1 - 12)
| | ——— День (1 - 31)
| ———– Час (0 - 23)
————- Минута (0 - 59)

Для каждого конкретного параметра можно задать несколько значений через запятую.

Например, если в поле часы написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа.
Можно задать интервал — 4-9 будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно.
Символ * означает «все возможные значения». Например, указание * в поле часы будет означать «запускать каждый час».
Символ / служит для указания дополнительной периодичности задания. Например, */3 в поле часы означает «каждые три часа».

Как выглядит простейший сценарий планировщика (cron):

0 */3 * * 2,5 /usr/local/bin/php /home/login/html/cron.php  

Скрипт размещен по пути /home/login/html/cron.php будет автоматически запускаться каждые три часа во вторник и в пятницу.

Примеры использования заданий:

Выполнять задание раз в час в 0 минут

0 */1 * * * /usr/local/bin/php /home/login/html/cron.php  

Выполнять задание каждые три часа в 0 минут

0 */3 * * * /usr/local/bin/php /home/login/html/cron. php  

Выполнять задание по понедельникам в 1 час 15 минут ночи

15 1 * * 1 /usr/local/bin/php /home/login/html/cron.php  

Выполнять задание 5 апреля в 0 часов 1 минуту каждый год

1 0 5 4 * /usr/local/bin/php /home/login/html/cron.php  

Выполнять задание в пятницу 13 числа в 13 часов 13 минут

13 13 13 * 5 /usr/local/bin/php /home/login/html/cron.php  

Выполнять задание ежемесячно 1 числа в 6 часов 10 минут

Если требуется запускать какую-то программу один раз в день, особенно если она требует для выполнения больших ресурсов, выполняйте такое задание ночью, в период с 2 до 8 часов — нагрузка на сервер в это время минимальна.

Управлять cron нужно с помощью команды «crontab».

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

$ crontab -e

Открыть crontab пользователя Alice:

$ crontab -u alice -e

Просмотреть содержимое crontab текущего пользователя и пользователя Alice:

$ crontab -l
$ crontab -u alice -l

По умолчанию, пользовательские задания для планировщика cron хранятся в директории /var/spool/cron/.

ReadyScript: Настройка планировщика cron

Некоторые задачи требуют выполнения по расписанию или с определенной периодичностью, для этих целей в ReadyScript существует собственный внутренний планировщик. Внутренний планировщик позволяет всем модулям в системе добавлять свои задачи на фоновое выполнение в необходимое время. Внутренний планировщик не должен зависеть от посещаемости сайта, поэтому его запуск должен осуществляться ежеминутно с помощью серверного планировщика cron.

В административной панели вашего магазина в разделе Управление → Настройка, вы можете включать и выключать внутренний планировщик, а также видеть дату и время последнего запуска.

Для настройки внутреннего планировщика, необходимо настроить ежеминутный запуск скрипта /core/cron/cron.php, расположенного в папке вашего сайта на платформе ReadyScript, с помощью планировщика cron. Вам потребуется узнать у вашего хостинг-провайдера 2 параметра:

  1. Путь к интерпретатору PHP (Например, /usr/bin/php или php (без указания папки))
  2. Путь от корня диска до вашей папки сайта (Например, /var/www/username/data/www/domain)

Общий вид запускаемой серверным планировщиком команды должен быть следующим:

<путь к интерпретатору PHP> <путь к корню сайта>/core/cron/cron.php >/dev/null

Например:

/usr/bin/php /var/www/username/data/www/domain/core/cron/cron.php >/dev/null

  1. Подключитесь к вашему серверу по SSH
  2. Выполните команду: crontab -e
  3. Откроется редактор файла с заданиями. Добавьте в конце файла строку с заданием:

     * * * * * usr/bin/php /var/www/username/data/www/domain/core/cron/cron.php >/dev/null

  4. Нажмите ESC, затем наберите :wq для сохранения результатов и выхода.
  5. В случае, если проверка crontab файла пройдет успешно, вы увидите сообщение «crontab: installing new crontab». В противном случае система предложит заново отредактировать файл с помощью сообщения: «errors in crontab file, can’t install. Do you want to retry the same edit?»

Если ваш хостинг использует в качестве панели управления хостингом Isp Manager 5, то воспользуйтесь данной инструкцией.

  1. Выберите раздел Планировщик, затем нажмите на кнопку «Создать».
  1. Заполните параметры задания для планировщика
  1. После сохранения, задание должно появиться в списке.

Если ваш хостинг использует в качестве панели управления хостингом Isp Manager 4, то воспользуйтесь данной инструкцией.

  1. Выберите раздел Планировщик, затем нажмите на кнопку «Создать».
  1. Заполните параметры задания для планировщика
  1. После сохранения, задание должно появиться в списке.

программа cron планировщик задач unix систем

cron — программа демон, планировщик задач

     cron [-j jitter] [-J rootjitter] [-m mailto] [-s] [-o]
                [-x debugflag[,...]]

Cron является стандартной программой планировщиком заданий в Unix системах, в том числе и FreeBSD. Планировщик cron запускается из файлов: /etc/rc или /etc/rc.local. Поскольку программа cron запускается в качестве демона, сразу возвращая управление системе, нет необходимосте запускать его вручную, с суффиксом &

.

После старта, cron производит поиск персональных crontab файлов, в папке /var/cron/tabs, соответствующих учетным записям пользователей, из файла /etc/passwd, обнаруженные файлы загружаются в память. Кроме того производится поиск и загрузка общесистемного crontab файла /etc/crontab.

Планировщик заданий cron, работает в фоновом режиме, просыпаясь каждую минуту и проверяя все загруженные crontab файлы, на наличие команд, которые нужно выполнить в текущую минуту. Прежде чем запускать команду из файла crontab, принадлежащего какой-либо учетной записи, cron проверяет статус данной учетной записи с помощью pam(3), игнорируя команды, если аккаунт пользователя заблокирован или просрочен. Команды из общесистемного файла /etc/crontab выполняются всегда. При выполнении команд, вывод отправляется на почтовый адрес владельца данной таблицы crontab ( или пользователю прописанному в переменной окружения MAILTO, если таковая присутствует ).

Дополнительно, каждую минуту, планировщик cron проверяет время модификации буферного каталога и файла /etc/crontab, если время изменилось, cron проверит время на всех файлах crontab и перезагрузит те которые были изменены. Таким образом не нужно перезапускать cron, всякий раз, когда какая-нибудь из таблиц crontab была измененв. Обратите внимание, КОМАНДА crontab(1) меняет время модификации буферного каталога, во время изменения файлов crontab.

Опции cron:

-j jitter
Устанавливает так называемый «разброс» времени. Перед выполнение очередной команды, cron будет засыпать на случайное количество секунд, лежащее в диапазоне между 0 и jitter. Данная опция не затрагивает задания пользователя root ( смотрите -J ). Значение должно быть от 0 до 60 включительно. Значение по умолчанию 0, то есть отключено.

Данная опция помогает снизить чрезмерную нагрузку, возникающую в случае выполнения большого количества запланированных заданий cron, запускаемых одновременно, например в первую минуту каждого часа.

-J rootjitter
Устанавливает «разброс» времени для планировщика заданий пользователя root, в остальном работает подобно опции -j.
-m mailto
Переопределяет получателя по умолчанию для извещений cron. Каждый crontab(5) без явно установленной переменной MAILTO, будет отправлять письма на установленный в этой опции адрес. Отправка почты будет отключена, если установлено значение » или «», то есть пустая строка.
-s
Включить специальный обработчик для ситуации, когда изменяется GMT смещение для локальной временной зоны, например при переходе с обычного времени на летнее.

При запуске заданий cron, изменение GMT смещения, интуитивно ожидаемо. Если задание попадает в промежуток времени который пропадает, например во время перехода на летнее время, либо наоборот дублируется, во время обратного перехода, ситуация обрабатывается по одному из двух возможных вариантов:

Первый случай, когда временной интервал заданий выполняемых ежечасно, наклвдывается на пропадающий или дублирующийся интервал. Другими словами, если задание запускается в течении часа до изменения GMT смещения ( и планировщик cron не будет перезапущен в этот промежуток времени млм изменен crontab ) или в течении часа после изменения GMT смещения. Cron отработает как обычно, пропускает, пропущенное время или запускается в добавленное.

Второй случай, для заданий выполняемых реже. Они будут выполнены один раз, не будут пропущены или запущены дважды ( если cron не перезапущен и пользовательский crontab не изменен ). Если временной интервал пропадает во время GMT смещения, задания будут выполнены в том-же абсолютном моменте времени как если-бы они были в старом часовом поясе.

-o
Отключает специальную обработку изменения GMT смещения локальной временной зоны, для совместимости со старым поведением планировщика заданий по умолчанию. Если определены опции -o и -s, будет учтена, идущая последней.
-x debugflag[,…]
Включить запись отладочной информации в поток стандартного вывода. Один или более отладочных флагов, разделенных запятой, должны быть опредены.

  • bit не используется
  • ext сделать другой отладочный флаг более информативным
  • load быть более информативным при загрузке crontab файлов
  • misc быть более информативным при различных разовых событиях
  • pars быть более информативным при парсинге каждой строки crontab файла
  • proc быть более информативным выводя статус процесса и всех его потомков
  • sch быть более информативным в повторных выполнений заданий
  • test отследить процесс запуска но не производить при этом никаких действий

Рабочие файлы:

  • /etc/crontab — Общесистемный crontab файл
  • /etc/pam.d/cron — Конфигурационный файл pam.conf(5)
  • /var/cron/tabs — Директория с персональными crontab файлами

Смотрите так-же:
crontab(1), pam(3), crontab(5), pam. conf(5)

Планировщик — Документация ISPmanager Lite

Планировщик — это инструмент для автоматического выполнения заданий на сервере, повторяющихся с заданной периодичностью. С его помощью вы можете осуществлять гибкую настройку различных задач. Под заданием планировщика (cron) понимается полный путь до программы, которая должна выполняться автоматически с заданной периодичностью, и, если необходимо, набор аргументов.

Просмотр списка заданий планировщика


  • Команда — путь до программы, которая должна выполняться автоматически с заданной периодичностью.
  • Расписание — периодичность выполнения задания.
  • Статус
  • Описание — описание задания.

Создание нового задания


Чтобы создать новое задание планировщика, нажмите кнопку «Создать» и заполните поля формы:

  • Команда — укажите полный путь до программы, которая должна выполняться автоматически с заданной периодичностью, и, если необходимо, набор аргументов. Например: /bin/date «+%d-%m-%Y».
  • Описание — укажите произвольное описание
  • Расписание — выберите тип выполнения задания:
    • базовый режим — позволяет выбрать настройку из предложенных вариантов.
      • Выполнять — установите периодичность выполнения задания:
      • каждый час — задание будет выполняться в 0 минут каждого часа.
      • ежедневно — задание будет выполняться ежедневно ровно в 00:00.
      • еженедельно — задание будет выполняться каждое воскресенье ровно в 00:00.
      • ежемесячно— задание будет выполняться первого числа каждого месяца ровно в 00:00.
      • ежегодно— задание будет выполняться каждый год 1 января ровно в 00:00.
      • при перезагрузке — задание будет выполняться после каждой перезагрузки операционной системы.
      • Выполнить в — более гибкая настройка периодичности с дополнительным набором полей. Возможны три варианта настройки настройки периодичности минут и часов.
    • экспертный режим — данный режим позволяет выбирать более точные значения.
      • Минуты
      • Часы
      • Дни месяцев
      • Месяцы
      • Дни недели
  • Не отправлять отчёт по e-mail — установите флажок, чтобы вывод команды (stdout и stderr) не пересылался на адрес электронной почты, указанный в Глобальных настройках планировщика .

Запуск задания


Чтобы проверить работу какого-либо задания планировщика, выделите нужную запись в списке и нажмите кнопку «Выполнить».

  • Команда — команда (последовательность команд), которая будет выполнена в оболочке операционной системы сервера.
  • Каталог — укажите каталог, в котором будет выполнена команда.

Настройка глобальных параметров


С помощью данной функции можно настроить параметры, общие для всех заданий планировщика. Для этого выберите необходимое задание, нажмите кнопку «Настройки» и заполните поле формы:

  • Адреса e-mail — укажите адрес электронной почты, на который будут пересылаться результаты выполнения команд планировщика, которые завершились с ошибкой.
  • Путь — укажите пути, по которым будет производиться поиск исполняемых файлов. Пути разделяются двоеточием.

Дополнительная информация


Как добавить в планировщик скрипт php на выполнение.

Например, путь скрипта /var/www/user/data/www/domain.com/script.php

(узнать путь до php можно выполнив команду whereis php)

(узнать путь до wget можно выполнив команду whereis wget)

cron — планировщик заданий » Unix.Uz

Cron — чрезвычайно удобный планировщик, способный делать все, что Вы ему скомандуете сделать. А выполнять Ваши указания он будет с заданной по времени периодичностью по расписанию.От в отличии от «Планировшика» в оффтопике — это сверхновая свезда по сравнению с пламенем свечи.

Конфигурационный файл cron’а — /etc/crontab. В нем содержатся все основные инструкции планировщика. В данном файле администратор (root) может ставить на выполнение задания от имени определенных пользователей, соответственно, ограничивая запускаемые процессы в правах. Cron всегда работает с правами root, но выполняет задания только от того имени, которое указано в /etc/crontab, либо (если этот крон был назначен обычным пользователем) — от имени того пользователя, что его назначил.

Для запуска крона при старте системы, править что-либо в /etc/rc.conf нет необходимости. Здесь его можно только отключить. Все параметры запуска cron указаны в стартовом файле по-умолчанию /etc/defaults/rc.conf

% cat /etc/defaults/rc.conf | grep cron
# Разрешать запуск планировщика? Да.
  cron_enable=”YES”
# Какую запускать программу для этого?
  cron_program=”/usr/sbin/cron”
# Следущую строку я не осилил… %)
# Handle DST transitions intelligently (YES/NO)
  cron_dst=”YES”
# Дополнительные флаги для старта крон.
# (Этот параметр следует переопределять в /etc/rc.conf)
  cron_flags=”"
# Куда наш крон будет сохранять изменения в системе?
# Если выставить параметр “NO” то не будет никуда.
  entropy_dir=”/var/db/entropy”

Крон будет автоматически запускаться при старте системы и, повиснув демоном (системной службой), будет отслеживать все изменения в /etc/crontab и в пользовательских crontab’ах.

# ps -ax | grep cron
 1221  ??  Ss     0:02,30 /usr/sbin/cron -s

Дефолтный конфигурационный файл /etc/crontab выглядит таким образом:

#
# root's crontab
#
# В первую очередь прописываются переменные окружения
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
# А с этого места начинаются задания, но для начала в качестве подсказки,
# описания что означает каждый столбец
#
#[мин][час][числа][месяц][дни_недели][юзер][команда]
#

# Следущая команда раз в пять минут создает такой себе
# "список отложенных задач".  Подробнее: man atrun
*/5    *      *     *       *         root    /usr/libexec/atrun

# А это задание заставляет один раз в час
# "проснуться" программу newsyslog которая,
# если нужно, ротирует (сжимает) лог файлы
0      *      *     *       *         root    newsyslog

# Ну, а это задания, касающиеся ежесуточного аудита системы.
# По выполнении этих заданий на почту root приходят письма с
# отчетом что нового произошло на сервере за последние сутки.
01     3      *     *       *         root    periodic daily
15     4      *     *       6         root    periodic weekly
30     5      1     *       *         root    periodic monthly

# Два раза в час происходит корректировка системных часов.
#1,31 0-5     *     *       *         root    adjkerntz -a

Это файл конфигурации по-умолчанию для Вашего cron’а. В него по аналогии можно добавить любые другие задания и крон тут же (после того, как Вы сохраните этот файл) примет их к сведению.

При редактировании crontab между колонками должен быть минимум один пробел, либо одна табуляция. Имя пользователя указывать необязательно. Если имя пользователя не указано, команду или скрипт крон выполнит от имени пользователя root.

Кроме root’ового crontab, существуют также пользовательские. Хранятся они в каталоге /var/cron/tabs/. Названия crontab файлов совпадают с именами пользователей, которым они принадлежат. Здесь также может находиться еще один crontab файл пользователя root, сгенерированный командой crontab -e. Все задания, указанные в crontab’ах каталога /var/cron/tabs/ выполняются cron’ом от имени того пользователя, что их создал. В пользовательском crontab нельзя опционально указать имя пользователя, от которого будет запускаться задание. Если crontab принадлежит пользователю, то только от имени пользователя (и с его правами) будут выполняться все команды в нем.

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

$ crontab -e

При этом откроется Ваш редактор по-умолчанию (прописанный в переменной окружения EDITOR), в котором Вы сможете отредактировать свой crontab. Его формат будет полностью аналогичен /etc/crontab, за исключением столбца “имя пользователя” — его не будет. После редактирования сохраните файл и выйдите из редактора. Для просмотра Ваших запланированных заданий выполните команду.

$ crontab -l

Пользователь root также имеет возможность использовать данную утилиту с ключом -u [имя пользователя], для просмотра и внесения изменений в пользовательские crontab файлы

% crontab -l -u synergix
#
# Crontab configuration file for synergix
#
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
HOME=/home/synergix
#
00  01   *   *   *    ~/some-script.sh
#

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

Как мне получить Cron, как планировщик в Python?

Я ищу библиотеку в Python, которая обеспечит at и cron подобную функциональность.

Я бы очень хотел иметь чистое решение Python, а не полагаться на инструменты, установленные на коробке; таким образом, я работаю на машинах без cron.

Для тех, кто не знаком с cron : вы можете планировать задачи на основе такого выражения, как:

 0 2 * * 7 /usr/bin/run-backup # run the backups at 0200 on Every Sunday
 0 9-17/2 * * 1-5 /usr/bin/purge-temps # run the purge temps command, every 2 hours between 9am and 5pm on Mondays to Fridays.

Синтаксис выражения времени cron менее важен, но я хотел бы иметь что-то с такой гибкостью.

Если нет чего-то, что делает это для меня out-the-box, любые предложения по строительным блокам, чтобы сделать что-то подобное, будут с благодарностью приняты.

Edit
я не заинтересован в запуске процессов, просто «jobs» также написан в функциях Python — python. По необходимости я думаю, что это будет другая нить, но не в другом процессе.

С этой целью я ищу выразительность выражения времени cron, но в Python.

Cron существует уже много лет, но я стараюсь быть как можно более портативным. Я не могу полагаться на его присутствие.

python

cron

scheduled-tasks

Поделиться

Источник


jamesh    

17 декабря 2008 в 00:56

18 ответов


  • Google app engine cron планировщик не использует синхронизацию

    Я хочу запустить cron для каждого интервала в 2 минуты, 0,2,4,6,8 …. каждое выполнение cron выполняется в течение 2 минут. Я настроил расписание cron с синхронизацией, как показано ниже. Но я все равно вижу, что планировщик ведет себя так, как будто синхронизация не дана. Кроны запланированы на…

  • Как определить планировщик в определенное время?

    Я хотел бы определить планировщик spring (или quartz cron scheduler) в определенное время. Например, мне было дано определенное время, в которое должна выполняться определенная работа. Эти времена-09:00, 12:15, 15:35, 19:05 Так что, как вы можете видеть, эти времена случайны. Поэтому я не могу…



600

Если вы ищете что-то легкое, оформите заказ по расписанию :

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

Раскрытие: я автор этой библиотеки.

Поделиться


dbader    

28 мая 2013 в 07:48



66

Вы можете просто использовать обычный синтаксис передачи аргументов Python для указания вашего crontab. Например, предположим, что мы определяем класс событий следующим образом:

from datetime import datetime, timedelta
import time

# Some utility classes / functions first
class AllMatch(set):
    """Universal set - match everything"""
    def __contains__(self, item): return True

allMatch = AllMatch()

def conv_to_set(obj):  # Allow single integer to be provided
    if isinstance(obj, (int,long)):
        return set([obj])  # Single item
    if not isinstance(obj, set):
        obj = set(obj)
    return obj

# The actual Event class
class Event(object):
    def __init__(self, action, min=allMatch, hour=allMatch, 
                       day=allMatch, month=allMatch, dow=allMatch, 
                       args=(), kwargs={}):
        self. mins = conv_to_set(min)
        self.hours= conv_to_set(hour)
        self.days = conv_to_set(day)
        self.months = conv_to_set(month)
        self.dow = conv_to_set(dow)
        self.action = action
        self.args = args
        self.kwargs = kwargs

    def matchtime(self, t):
        """Return True if this event should trigger at the specified datetime"""
        return ((t.minute     in self.mins) and
                (t.hour       in self.hours) and
                (t.day        in self.days) and
                (t.month      in self.months) and
                (t.weekday()  in self.dow))

    def check(self, t):
        if self.matchtime(t):
            self.action(*self.args, **self.kwargs)

(Примечание: не полностью протестировано)

Тогда ваш CronTab может быть указан в обычном синтаксисе python следующим образом:

c = CronTab(
  Event(perform_backup, 0, 2, dow=6 ),
  Event(purge_temps, 0, range(9,18,2), dow=range(0,5))
)

Таким образом, вы получаете полную мощь механики аргументов Python (смешивание позиционных и ключевых аргументов, а также можете использовать символические имена для названий недель и месяцев)

Класс CronTab будет определен как просто спящий с шагом в минуту и вызывающий check() для каждого события. (Хотя, вероятно, есть некоторые тонкости с переходом на летнее время / часовыми поясами, которых следует опасаться). Вот быстрая реализация:

class CronTab(object):
    def __init__(self, *events):
        self.events = events

    def run(self):
        t=datetime(*datetime.now().timetuple()[:5])
        while 1:
            for e in self.events:
                e.check(t)

            t += timedelta(minutes=1)
            while datetime.now() < t:
                time.sleep((t - datetime.now()).seconds)

Несколько вещей, которые следует отметить: дни недели / месяцы Python индексируются нулем (в отличие от cron), и этот диапазон исключает последний элемент, поэтому синтаксис типа «1-5» становится диапазоном(0,5) — то есть [0,1,2,3,4]. Если вы предпочитаете синтаксис cron, то его разбор не должен быть слишком сложным.

Поделиться


Brian    

17 декабря 2008 в 10:48



49

может быть, это возникло только после того, как был задан вопрос; я думал, что просто упомяну его для полноты картины: https:/ / apscheduler.readthedocs.org/en / latest/

Поделиться


ssc    

10 марта 2011 в 07:46


  • Как сделать планировщик типа cron в PHP на сервере Windows

    Я новичок в Windows сервере, я настроил свой проект на windows серверах в соответствии с требованиями клиента, но я страдаю от серьезной проблемы, которая заключается в том, что мой клиент хочет загрузить файл параллельно в то же время с другим пользователем на том же веб-сайте, и я также проверяю…

  • Laravel Планировщик Пользовательское Выражение Cron Не Работает

    У меня есть два вызова выражения планировщика laravel следующим образом: один с пользовательским выражением cron, которое выполняется каждые 3 часа, а другой-ежечасно. Каждый раз запускается почасовой планировщик, но не пользовательский cron. Раньше это работало, но перестало работать. Если я…



29

Одна вещь, которую я видел в своих поисках, — это модуль python sched, который может быть именно тем, что вы ищете.

Поделиться


Sean    

17 декабря 2008 в 01:45


Поделиться


bootload    

12 декабря 2012 в 02:39



11

Более или менее то же самое, что и выше, но одновременно с использованием gevent 🙂

"""Gevent based crontab implementation"""

from datetime import datetime, timedelta
import gevent

# Some utility classes / functions first
def conv_to_set(obj):
    """Converts to set allowing single integer to be provided"""

    if isinstance(obj, (int, long)):
        return set([obj])  # Single item
    if not isinstance(obj, set):
        obj = set(obj)
    return obj

class AllMatch(set):
    """Universal set - match everything"""
    def __contains__(self, item): 
        return True

allMatch = AllMatch()

class Event(object):
    """The Actual Event Class"""

    def __init__(self, action, minute=allMatch, hour=allMatch, 
                       day=allMatch, month=allMatch, daysofweek=allMatch, 
                       args=(), kwargs={}):
        self. mins = conv_to_set(minute)
        self.hours = conv_to_set(hour)
        self.days = conv_to_set(day)
        self.months = conv_to_set(month)
        self.daysofweek = conv_to_set(daysofweek)
        self.action = action
        self.args = args
        self.kwargs = kwargs

    def matchtime(self, t1):
        """Return True if this event should trigger at the specified datetime"""
        return ((t1.minute     in self.mins) and
                (t1.hour       in self.hours) and
                (t1.day        in self.days) and
                (t1.month      in self.months) and
                (t1.weekday()  in self.daysofweek))

    def check(self, t):
        """Check and run action if needed"""

        if self.matchtime(t):
            self.action(*self.args, **self.kwargs)

class CronTab(object):
    """The crontab implementation"""

    def __init__(self, *events):
        self.events = events

    def _check(self):
        """Check all events in separate greenlets"""

        t1 = datetime(*datetime.now().timetuple()[:5])
        for event in self.events:
            gevent.spawn(event.check, t1)

        t1 += timedelta(minutes=1)
        s1 = (t1 - datetime.now()).seconds + 1
        print "Checking again in %s seconds" % s1
        job = gevent.spawn_later(s1, self._check)

    def run(self):
        """Run the cron forever"""

        self._check()
        while True:
            gevent.sleep(60)

import os 
def test_task():
    """Just an example that sends a bell and asd to all terminals"""

    os.system('echo asd | wall')  

cron = CronTab(
  Event(test_task, 22, 1 ),
  Event(test_task, 0, range(9,18,2), daysofweek=range(0,5)),
)
cron.run()

Поделиться


Hackeron    

01 июня 2010 в 02:01



9

Ни одно из перечисленных решений даже не пытается проанализировать сложную строку расписания cron. Итак, вот моя версия, использующая croniter . Основная суть:

schedule = "*/5 * * * *" # Run every five minutes

nextRunTime = getNextCronRunTime(schedule)
while True:
     roundedDownTime = roundDownTime()
     if (roundedDownTime == nextRunTime):
         ####################################
         ### Do your periodic thing here. ###
         ####################################
         nextRunTime = getNextCronRunTime(schedule)
     elif (roundedDownTime > nextRunTime):
         # We missed an execution. Error. Re initialize.
         nextRunTime = getNextCronRunTime(schedule)
     sleepTillTopOfNextMinute()

Вспомогательные процедуры:

from croniter import croniter
from datetime import datetime, timedelta

# Round time down to the top of the previous minute
def roundDownTime(dt=None, dateDelta=timedelta(minutes=1)):
    roundTo = dateDelta.total_seconds()
    if dt == None : dt = datetime.now()
    seconds = (dt - dt.min).seconds
    rounding = (seconds+roundTo/2) // roundTo * roundTo
    return dt + timedelta(0,rounding-seconds,-dt.microsecond)

# Get next run time from now, based on schedule specified by cron string
def getNextCronRunTime(schedule):
    return croniter(schedule, datetime.now()).get_next(datetime)

# Sleep till the top of the next minute
def sleepTillTopOfNextMinute():
    t = datetime.utcnow()
    sleeptime = 60 - (t.second + t.microsecond/1000000.0)
    time.sleep(sleeptime)

Поделиться


rouble    

06 марта 2016 в 22:06



7

Я изменил сценарий.

  1. Простота в использовании:

    cron = Cron()
    cron.add('* * * * *'   , minute_task) # every minute
    cron.add('33 * * * *'  , day_task)    # every hour
    cron.add('34 18 * * *' , day_task)    # every day
    cron.run()
    
  2. Попробуйте начать задание в первую секунду минуты.

Код на Github

Поделиться


ning    

06 января 2014 в 10:38



6

У меня есть небольшое исправление для метода запуска класса CronTab, предложенного Брайаном .

Отсчет времени шел на одну секунду, что приводило к односекундной жесткой петле в конце каждой минуты.

class CronTab(object):
    def __init__(self, *events):
        self.events = events

    def run(self):
        t=datetime(*datetime.now().timetuple()[:5])
        while 1:
            for e in self.events:
                e.check(t)

            t += timedelta(minutes=1)
            n = datetime.now()
            while n < t:
                s = (t - n).seconds + 1
                time.sleep(s)
                n = datetime.now()

Поделиться


benc    

07 февраля 2010 в 09:59



4

Нет «pure python» способа сделать это, потому что какой-то другой процесс должен был бы запустить python, чтобы запустить ваше решение. Каждая платформа будет иметь один или двадцать различных способов запуска процессов и мониторинга их хода. На платформах unix cron-это старый стандарт. В Mac OS X также есть launchd, который сочетает в себе запуск cron-like с функцией watchdog, которая может поддерживать ваш процесс живым, если вы этого хотите. После запуска python вы можете использовать модуль sched для планирования задач.

Поделиться


Nick    

17 декабря 2008 в 05:45



4

Я знаю, что есть много ответов, но другим решением может быть использование декораторов . Это пример ежедневного повторения функции в определенное время. Классная идея использования этого способа заключается в том, что вам нужно только добавить синтаксический сахар в функцию, которую вы хотите запланировать:

@repeatEveryDay(hour=6, minutes=30)
def sayHello(name):
    print(f"Hello {name}")

sayHello("Bob") # Now this function will be invoked every day at 6.30 a.m

А декоратор будет выглядеть так:

def repeatEveryDay(hour, minutes=0, seconds=0):
    """
    Decorator that will run the decorated function everyday at that hour, minutes and seconds. 
    :param hour: 0-24
    :param minutes: 0-60 (Optional)
    :param seconds: 0-60 (Optional)
    """
    def decoratorRepeat(func):

        @functools.wraps(func)
        def wrapperRepeat(*args, **kwargs):

            def getLocalTime():
                return datetime.datetime.fromtimestamp(time.mktime(time.localtime()))

            # Get the datetime of the first function call
            td = datetime.timedelta(seconds=15)
            if wrapperRepeat.nextSent == None:
                now = getLocalTime()
                wrapperRepeat.nextSent = datetime.datetime(now.year, now.month, now.day, hour, minutes, seconds)
                if wrapperRepeat.nextSent < now:
                    wrapperRepeat.nextSent += td

            # Waiting till next day
            while getLocalTime() < wrapperRepeat.nextSent:
                time.sleep(1)

            # Call the function
            func(*args, **kwargs)

            # Get the datetime of the next function call
            wrapperRepeat.nextSent += td
            wrapperRepeat(*args, **kwargs)

        wrapperRepeat.nextSent = None
        return wrapperRepeat

    return decoratorRepeat

Поделиться


Damia Fuentes    

01 апреля 2019 в 18:47



1

Решение Брайана работает довольно хорошо. Однако, как указывали другие, в коде запуска есть тонкая ошибка. Кроме того, я нашел его слишком сложным для своих нужд.

Вот моя более простая и функциональная альтернатива для кода запуска на случай, если он кому-то понадобится:

def run(self):
    while 1:
        t = datetime.now()
        for e in self.events:
            e.check(t)

        time.sleep(60 - t.second - t.microsecond / 1000000.0)

Поделиться


raph.amiard    

02 ноября 2010 в 00:27



1

Другим тривиальным решением было бы:

from aqcron import At
from time import sleep
from datetime import datetime

# Event scheduling
event_1 = At( second=5 )
event_2 = At( second=[0,20,40] )

while True:
    now = datetime. now()

    # Event check
    if now in event_1: print "event_1"
    if now in event_2: print "event_2"

    sleep(1)

А класс aqcron.At-это:

# aqcron.py

class At(object):
    def __init__(self, year=None,    month=None,
                 day=None,     weekday=None,
                 hour=None,    minute=None,
                 second=None):
        loc = locals()
        loc.pop("self")
        self.at = dict((k, v) for k, v in loc.iteritems() if v != None)

    def __contains__(self, now):
        for k in self.at.keys():
            try:
                if not getattr(now, k) in self.at[k]: return False
            except TypeError:
                if self.at[k] != getattr(now, k): return False
        return True

Поделиться


fdb    

10 сентября 2012 в 22:51



1

Мне нравится, как пакет pycron решает эту проблему.

import pycron
import time

while True:
    if pycron.is_now('0 2 * * 0'):   # True Every Sunday at 02:00
        print('running backup')
        time.sleep(60)               # The process should take at least 60 sec
                                     # to avoid running twice in one minute
    else:
        time.sleep(15)               # Check again in 15 seconds

Поделиться


Duffau    

16 июня 2019 в 15:00



1

Если вы ищете распределенный планировщик, вы можете проверить https://github.com/sherinkurian/mani — он действительно нуждается в redis, хотя это может быть не то, что вы ищете. (обратите внимание, что я являюсь автором)
это было построено для обеспечения отказоустойчивости за счет того, что часы работают более чем на одном узле.

Поделиться


shrnkrn    

19 мая 2018 в 16:53



0

Я не знаю, существует ли уже что-то подобное. Было бы легко написать свой собственный с помощью time, datetime и/или календарных модулей, см. http://docs.python.org/library/time. html

Единственная проблема для решения python заключается в том, что ваша работа должна быть всегда запущена и, возможно, автоматически «resurrected» после перезагрузки, что вам действительно нужно полагаться на системные решения.

Поделиться


Davide    

17 декабря 2008 в 01:01



0

Вы можете проверить PiCloud-Е [1] кроны [2], но обратите внимание, что ваши задания не будут выполняться на вашей собственной машине. Это также услуга, за которую вам придется заплатить, если вы используете более 20 часов вычислительного времени в месяц.

[1] http://www.picloud.com

[2] http://docs.picloud.com/cron.html

Поделиться


BrainCore    

25 апреля 2013 в 00:23



0

Метод Crontab на сервере.

Python имя файла hello.py

Шаг 1: создайте файл sh и дайте ему имя s.sh

python3 /home/ubuntu/Shaurya/Folder/hello.py > / home/ubuntu/Shaurya/Folder/log.txt 2>&1

Шаг 2: Откройте Редактор Crontab

crontab-e

Шаг 3: Добавьте Время Расписания

Используйте Форматирование Crontab

2 * * * * sudo sh /home/ubuntu/Shaurya/Folder/s.sh

Этот cron будет работать “At minute 2.”

Поделиться


shaurya uppal    

15 мая 2019 в 21:12


Похожие вопросы:

Создайте новый Планировщик заданий cron из панели управления администратора SocialEngine

Я новичок в социальной инженерии. Может ли кто-нибудь помочь мне, как создать новый Планировщик заданий cron из админ-панели socialengine?

Как я могу сделать планировщик в PHP без помощи cron

Как я могу сделать планировщик в PHP, не написав сценарий cron? Есть ли какое-то стандартное решение? Функция [например]: отправлено остаток всем подписчикам 24 часа b4 срок действия подписки…

Как планировщик задач запускает задание?

Когда планировщик задач (например, cron) запускает задачи (например, cron задания), делает ли он это на polling часов каждый минимальный период (например, секунду) или регистрирует обратный вызов,…

Google app engine cron планировщик не использует синхронизацию

Я хочу запустить cron для каждого интервала в 2 минуты, 0,2,4,6,8 …. каждое выполнение cron выполняется в течение 2 минут. Я настроил расписание cron с синхронизацией, как показано ниже. Но я все…

Как определить планировщик в определенное время?

Я хотел бы определить планировщик spring (или quartz cron scheduler) в определенное время. Например, мне было дано определенное время, в которое должна выполняться определенная работа. Эти…

Как сделать планировщик типа cron в PHP на сервере Windows

Я новичок в Windows сервере, я настроил свой проект на windows серверах в соответствии с требованиями клиента, но я страдаю от серьезной проблемы, которая заключается в том, что мой клиент хочет…

Laravel Планировщик Пользовательское Выражение Cron Не Работает

У меня есть два вызова выражения планировщика laravel следующим образом: один с пользовательским выражением cron, которое выполняется каждые 3 часа, а другой-ежечасно. Каждый раз запускается…

Как заставить планировщик windows запускать и останавливать задачу python

У меня есть сценарий python, который я обычно запускаю вручную. Затем он работает в течение нескольких дней, собирая информацию, пока не отключается. Я хочу, чтобы планировщик Windows запустил…

Распределенный планировщик задач в python?

Я хотел бы создать приложение, которое вызывало бы периодические задачи с определенными интервалами — cron замены, но без порождающих процессов. У меня будет много задач, около 10000 в минуту. Я…

Windows планировщик задач против узла cron расписание

Мы работаем над приложением, которое будет обрабатывать отправку SMS в расписании, у нас есть windows server , и мы используем Task Scheduler из windows для этой цели . На самом деле я не в порядке…

Планировщик задач сron в Linux описание, примеры особенности

Для выполнения конкретных задач по расписанию, или периодически, через равный промежуток времени (регулярных действий) в линуксе  (да и вообще в UNIX-подобных ОС), существует утилита cron. Это программа-демон (служба, по аналогии с Windows), которая постоянно размещена и работает в оперативной памяти компьютера, сканируя раз в минуту список установленных задач на наличие актуальной для выполнения в текущий момент времени. Сами инструкции по запуску задач находятся в специально предназначенных crontab-файлах, которые, в свою очередь, находятся в строго отведённых каталогах системы.

Историческая справка

Утилита была разработана ещё в начале 70-х годов прошлого столетия, когда Кен Томпсон и Деннис Ритчи создали ОС UNIX. Они работали над проектом по созданию многозадачной и многопользовательской системы Multics, в котором принимали участие компании AT&T и Bell Labs. В то время подобная система была настолько высокотехнологичным и прорывным продуктом, что позже Bell Labs отказалась от активного участия в проекте из-за крайне низкой востребованности подобного рода систем для широкого потребления.
Однако, используя наработки из проекта Multics, Томпсон и Ритчи на этой основе и на волне энтузиазма создали ОС UNIX. Такая мощная и прорывная платформа для полноценного раскрытия своего функционала нуждалась в обеспечении её функционалом в виде специализированного ПО и утилит, одной из которых и по сей день является cron. Разработчиком утилиты является Кен Томпсон.

Функционал и основные компоненты примеры cron

Описания регулярных действий, запускаемых утилитой– это так называемая crontab-таблица, которая имеет строго определенный формат. Она состоит из 6 колонок, разделённых табуляторами или пробелами, первые 5 из которых определяют время запуска действия. Последняя колонка интерпретируется как команда запуска, т. е. само действие.

0 5 * * 1 tar -zcf var/backups/home.tgz /home/

Приведённое описание действия означает запуск резервного копирования (путём архивирования и помещения созданного архива в var/backups/) всех каталога /home каждую неделю (по понедельникам) в 5 утра. Как видно, сначала задаётся колонка минут, затем часов, дней, месяцев и дней недели. Далее следует команда запуска, в данном случае для создания архива. В колонках, определяющих время могут использоваться числа, группы чисел, разделяемых запятыми, диапазоны чисел, разделяемых дефисом, а также символы «*» и «/». Каждому действию соответствует строка описания в crontab-файле. В приведённом примере цифра «1» означает порядковый номер дня недели — понедельник, соответственно «2» — вторник, «3» — среда и т. д., причём воскресенье это «0» или «7». Символ «*» означает любое значение с учётом валидности для соответствующего параметра. Для задания шага значений используется символ «/», например:

23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."

Пример настройки планировщика на выполнение задачи каждые 5 минут выглядит так

*/5 * * * * echo "Выполняется каждые 5 минут"

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

*/1 * * * * echo "Выполняется каждую минуту"

Каждый час

* */1 * * * echo "Выполняется каждый час"

каждое первое число февраль, июль и ноябрь в 2.30

10 00 01 02,07,11 * echo "каждое первое число февраль, июль и ноябрь в 0.10"

Каждые полчаса:

00,30 * * * * echo "каждые полчаса"

По выходным

* * * * 6,7 echo "суббота и воскресенье"

трижды в день:

00 10,15,20 * * * echo "будет выполняться каждый день в 10. 00 и 15.00, 20.00"

один раз в день с 00 до 09 часов по буднем.

00 00-09 * * 1-5 echo "будет выполняться с 00 до 09 часов по буднем"

Для добавления скрипта в крон нужно прописать полный путь к скрипту. Пример

00 01 * * * /etc/scripts/script.sh

В данном примере скрипт /etc/scripts/script.sh будет запускаться каждый день в час ночи. Существуют два типа crontab-файлов: системные и пользовательские. В отличие от пользовательских, в системных после колонок задания времени используется еще колонка для указания пользователя, от которого выполняется действие:

17 * * * * root cd / && run-parts —report /etc/cron.hourly

Кроме того, местоположение системных и пользовательских crontab-файлов различается: файлы, используемые для действий, управляющих системой находятся в /etc/cron.d/, а файлы, создаваемые для отдельных пользователей хранятся по адресу /var/spool/cron/crontabs/.
Для корректной работы утилиты необходимо в файлах crontab указывать оболочку командного интерпретатора, а также добавлять домашний каталог пользователя в PATH:

SHELL=/bin/sh
PATH=/bin:/usr/bin:/home/paul/bin

При необходимости можно также указать электронный адрес пользователя:

[email protected]

Если в описании действия команда отправляет текстовое содержимое в стандартный вывод, то программа, при наличии электронного адреса, автоматически перехватит это сообщение и отправит по e-mail.

Использование cron

Файлы crontab нельзя редактировать вручную, т. к. это может вызвать сбой в цикле обработки этих файлов, когда демон сканирует их для анализа описаний действий. Для редактирования пользовательского файла crontab существует команда:

crontab -e

При первом своём запуске эта команда сначала предложит выбрать один из имеющихся в системе текстовых редакторов, после чего откроет файл для редактирования.
Для просмотра используемого в данный момент crontab-файла используется команда:

crontab -l

Для удаления:

crontab –r

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

Важно заметить, что команда «crontab -e» также используется для создания пользовательского файла. Сначала файл будет создан в каталоге /tmp/ и лишь позже cron самостоятельно скопирует его в каталог пользовательских crontab-файлов, задав ему имя соответствующего пользователя, т. е. того, кем он был изначально создан.

Не стоит пугаться директории /tmp/ — файлы crontab в ней не потеряются.

Некоторые особенности cron

Утилита обладает рядом особенностей, которые необходимо учитывать при работе с ней и составлении описаний регулярных действий:

  1. Минимальное время составляет одну минуту.
  2. Файл crontab должен всегда заканчиваться пустой строкой
  3. Условия времени запуска «день недели» и «день месяца» обрабатываются через логическую операцию «ИЛИ», все остальные условия — через логическое «И».
  4. Выводы запускаемых команд выводятся в виде сообщений пользователю, но если в файле crontab была определена директива MAILTO – сообщение будет отправлено по указанному в этой директиве e-mail.

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

service cron status

или:

systemctl status cron

Для запуска и остановки можно также использовать:

service cron start
service cron stop

и

systemctl start cron
systemctl stop cron

Логи Cron

Логи по работе запуска программы в каждой системе хранятся по разному. Например в Centos это /var/log/crond, в Ubuntu /var/log/syslog. Так же, если не указанно MAILTO, вывод команд работы скриптов которые запускает крон, можно посмотреть в каталоге /var/spool/mail. В файле пользователя из под которого запускается программа.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Справочная страница Crontab — crontab.5 — Crontab.guru

CRONTAB

Раздел: Форматы файлов (5)
Обновлено: 22.11.2012


НАЗВАНИЕ

crontab — файлы, используемые для расписания выполнения программ

ОПИСАНИЕ

А
кронтаб

файл содержит инструкции для
крон (8)

демон следующим упрощенным образом: «запустить эту команду в это время
в этот день ». Каждый пользователь может определить свой собственный crontab. Определенные команды
в любом заданном crontab выполняются под пользователем, которому принадлежит этот конкретный
crontab.Uucp и News обычно имеют свои собственные crontab, устраняющие
необходимость явного запуска
su (1)

как часть команды cron.

Пустые строки, ведущие пробелы и табуляции игнорируются. Линии, чьи первые
символ без пробела — это знак фунта (#) — это комментарии, а не
обработанный. Обратите внимание, что комментарии не допускаются в той же строке, что и cron.
команды, поскольку они считаются частью команды. По аналогии,
комментарии не допускаются в той же строке, что и переменная окружения
настройки.

Активная строка в crontab — это либо параметр среды, либо cron
команда. Настройка среды имеет вид:

имя = значение

где пробелы вокруг знака равенства (=) необязательны, а любые
последующие неведущие пробелы в
значение

является частью значения, присвоенного
наименование .

В
значение

строка может быть заключена в кавычки (одинарные или двойные, но совпадающие), чтобы
сохранять начальные или конечные пробелы.

Некоторые переменные среды устанавливаются автоматически
крон (8)

демон.
ОБОЛОЧКА

установлен в / bin / sh, а
ИМЯ

и
ДОМ

устанавливаются из строки / etc / passwd владельца crontab.
ДОМ

и
ОБОЛОЧКА

можно переопределить настройками в crontab; LOGNAME не может.

(Обратите внимание
ИМЯ

переменную иногда называют
ПОЛЬЗОВАТЕЛЬ

в системах BSD и также устанавливается автоматически).

В добавление к
ИМЯ ,

ДОМ ,

и
ОБОЛОЧКА ,

крон (8)

смотрит на
ПОЧТА

переменная, если письмо нужно отправить в результате выполнения каких-либо команд
в этом конкретном файле crontab. Если
ПОЧТА

определено (и непусто), почта отправляется на указанный адрес. Если
ПОЧТА

определено, но пусто
( MAILTO = ),

почта не отправляется. В противном случае письмо будет отправлено владельцу crontab.
Эта опция полезна, если вы решили использовать / bin / mail вместо
/ usr / lib / sendmail в качестве почтовой программы.Обратите внимание, что / bin / mail не предоставляет
алиасинг и UUCP обычно не читает свою почту. Если
ПОЧТА

определен (и не пуст), он используется как адрес отправителя конверта,
в противном случае используется « корень ».

По умолчанию cron отправляет письмо с использованием заголовка Content-Type:
из ‘text / plain’ с параметром ‘charset =’, установленным на ‘charmap / codeset’
региона, в котором
крон (8)

запускается, т.е. либо локаль системы по умолчанию, если нет LC_ *
установлены переменные среды или локаль, указанная в LC_ *
переменные среды (см.
, локаль (7)).Для отправки выходных данных заданий cron по почте могут использоваться разные кодировки символов.
установка
CONTENT_TYPE

и
CONTENT_TRANSFER_ENCODING

переменные в crontab на правильные значения почтовых заголовков тех
имена.

В
CRON_TZ

переменная определяет часовой пояс, специфичный для таблицы cron. Пользователь
необходимо ввести время в соответствии с указанным часовым поясом в таблицу.
Время, используемое для записи в файл журнала, берется из местного времени.
зона, в которой запущен демон.

В
MLS_LEVEL

переменная среды обеспечивает поддержку нескольких SELinux для каждого задания
контексты безопасности в том же файле crontab. По умолчанию задания cron выполняются
с контекстом безопасности SELinux по умолчанию пользователя, создавшего
crontab файл. При использовании нескольких уровней безопасности и ролей это может
недостаточно, потому что один и тот же пользователь может работать в разных
роли или в разных уровнях безопасности. Для получения дополнительной информации о ролях
и SELinux MLS / MCS, см.
selinux (8)

и пример crontab, упомянутый позже в этом тексте.Вы можете установить
MLS_LEVEL

в строку контекста безопасности SELinux, определяющую конкретный
Контекст безопасности SELinux, в котором вы хотите запускать задания.
крон

затем установит контекст выполнения тех заданий, которые соответствуют
спецификации конкретного контекста безопасности. Для дополнительной информации,
видеть
crontab (1) -s вариант.

В
RANDOM_DELAY

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

Формат команды cron аналогичен стандарту V7, но с номером
совместимых вверх расширений. Каждая строка имеет пять полей времени и даты.
за которым следует
пользователь имя

(если это
система

crontab), за которым следует команда. Команды выполняются
крон (8)

когда поля «минута», «час» и «месяц года» соответствуют
Текущее время,
и

хотя бы одно из двух полей «день» («день месяца» или «день недели»)
соответствовать текущему времени (см. «Примечание» ниже).

Обратите внимание: это означает, что несуществующее время, такое как «пропущенные часы»
во время перехода на летнее время никогда не будет совпадать, что приведет к
задания, запланированные на «пропущенное время», не должны выполняться. По аналогии,
раз, которые встречаются более одного раза (опять же, в летнее время
преобразование) приведет к тому, что соответствующие задания будут выполняться дважды.

крон (8)

проверяет записи cron каждую минуту.

Поля времени и даты:

(или имена, см. ниже)
поле допустимые значения
минута 0-59
час 0-23
день месяца 1-31
месяц

день недели 0-7 (0 или 7 — воскресенье, или используйте имена)

Поле может содержать звездочку (*), которая всегда означает
«первый Последний».

Допускаются диапазоны чисел. Диапазоны — это два числа, разделенных знаком
дефис. Указанный диапазон является включительным. Например, 8-11 для
запись «часы» указывает выполнение в часы 8, 9, 10 и 11.

Списки разрешены. Список — это набор чисел (или диапазонов), разделенных символом
запятые. Примеры: «1,2,5,9», «0-4,8-12».

Значения шага можно использовать вместе с диапазонами. Следуя диапазону
с «/ <число>» указывает пропуск значения числа в диапазоне.Например, «0–23 / 2» можно использовать в поле «часы» для указания команды.
выполнение через каждый второй час (альтернативой в стандарте V7 является
«0,: 2,: 4,: 6,: 8,: 10,: 12,: 14,: 16,: 18,: 20,: 22»). Значения шага
также разрешено после звездочки, поэтому при указании задания, которое будет запускаться каждые
два часа можно использовать «* / 2».

Имена также можно использовать для полей «месяц» и «день недели». Использовать
первые три буквы определенного дня или месяца (регистр не
иметь значение). Диапазоны или списки имен не допускаются.

«Шестое» поле (остальная часть строки) определяет команду, которую нужно запустить.
Вся командная часть строки до новой строки или символа «%»
будет выполняться / bin / sh или оболочкой, указанной в
Переменная SHELL файла cron. Символ «%» в команде, если только
экранированный обратной косой чертой (\), будет заменен на символы новой строки,
и все данные после первого% будут отправлены команде стандартно
Вход.

Примечание: день выполнения команды можно указать в следующих
два поля — «день месяца» и «день недели».Если оба поля
ограничены (т.е. не содержат символа «*»), команда будет
бежать, когда
либо

поле соответствует текущему времени. Например,

«30 4 1,15 * 5» приведет к тому, что команда будет запущена в 4:30 утра 1-го числа и
15 числа каждого месяца плюс каждую пятницу.

ПРИМЕР CRON ФАЙЛА


ОБОЛОЧКА = / bin / sh

MAILTO = пол

CRON_TZ = Япония

5 0 * * * $ HOME / bin / daily.job >> $ HOME / tmp / out 2> & 1

15 14 1 * * $ HOME / бункер / ежемесячно

0 22 * ​​* 1-5 mail -s "It's 10pm" joe% Joe, %% Где ваши дети?%
23 0-23 / 2 * * * echo "запускается через 23 минуты после полудня, 2:00, 4:00..., ежедневно"
5 4 * * sun echo "запускать в 5 часов после 4 каждое воскресенье"
 

Вакансий в /etc/cron.d/

Работа в
cron.d

и
/ и т. Д. / Crontab

системные задания, которые обычно используются более чем одним пользователем, таким образом,
дополнительно необходимо имя пользователя. MAILTO в первой строке
необязательный.

ПРИМЕР ЗАДАНИЯ В /etc/cron.d/job



MAILTO = корень
* * * * * root touch / tmp / file
 

SELinux с многоуровневой безопасностью (MLS)

В crontab важно указать уровень безопасности с помощью
crontab -s

или указав требуемый уровень в первой строке crontab.Каждый
уровень указан в
/ и т.д. / selinux / target / seusers .

При использовании crontab в режиме MLS особенно важно:

— проверить / изменить актуальную роль,

— установить правильный
роль для

справочник ,

который используется для ввода / вывода.

ПРИМЕР ДЛЯ SELINUX MLS


newrole -r sysadm_r
mkdir / tmp / SystemHigh
chcon -l SystemHigh / tmp / SystemHigh
crontab -e

MLS_LEVEL = SystemHigh
0-59 * * * * id -Z> / tmp / SystemHigh / crontest
 

ФАЙЛОВ

/ и т. Д. / Crontab

основной системный файл crontab. / var / катушка / cron /

каталог для хранения crontab, определенных пользователями.
/etc/cron.d/

каталог для хранения системных crontab.

СМОТРИ ТАКЖЕ

крон (8),

кронтаб (1)

РАСШИРЕНИЯ

Эти специальные «псевдонимы» с указанием времени, которые заменяют 5 начальных
поля времени и даты и начинаются с символа ‘@’,
поддерживается:

@reboot: запустить один раз после перезагрузки.
@yearly: запускать один раз в год, т.е. «0 0 1 1 *».@annually: запускать один раз в год, т.е. «0 0 1 1 *».
@monthly: запускать раз в месяц, т.е. «0 0 1 * *».
@weekly: запускать раз в неделю, т.е. «0 0 * * 0».
@daily: запускать один раз в день, т.е. «0 0 * * *».
@hourly: запускать раз в час, т.е. «0 * * * *».
 

ПЕЩЕРЫ

crontab

файлы должны быть обычными файлами или символическими ссылками на обычные файлы, они должны
не может быть исполняемым или записываемым для кого-либо, кроме владельца. Этот
требование может быть отменено с помощью
-p

параметр в командной строке crond.Если используется поддержка inotify, изменяется
в crontab с символическими ссылками не замечаются cron автоматически
демон. Демон cron должен получить сигнал SIGHUP, чтобы перезагрузить
crontabs. Это ограничение inotify API.

АВТОР

Пол Викси

Настройка расписаний заданий cron | Документация по Cloud Scheduler

На этой странице представлено краткое описание использования формата unix-cron для описания
работа графики . Вы также можете использовать устаревшее
Синтаксис cron App Engine для
описать расписание.

Определение расписания работ

Задания Cron планируются через повторяющиеся интервалы, указанные с помощью
формат unix-cron. Вы можете
определите расписание, чтобы ваша работа выполнялась несколько раз в день или выполнялась
конкретные дни и месяцы.

Расписание описывается с использованием строкового формата unix-cron ( * * * * * ), который представляет собой набор
из пяти значений в строке, указывающих, когда задание должно быть выполнено.

Вы можете использовать либо консоль Google Cloud, либо командную строку gcloud, либо
или REST API Cloud Scheduler
установить свое расписание.

Поля времени имеют формат и возможные значения, показанные ниже
стол:

Поле Формат допустимых значений
Минуты 0-59
Час 0-23
День месяца 1-31
Месяц 1-12
День недели 0-6 (с воскресенья по субботу)

Вы можете выбрать часовой пояс для оценки расписаний, используя
раскрывающийся список в облачной консоли Создать задание Экран или флаг gcloud --time-zone при создании задания.Часовой пояс по умолчанию — Etc / UTC .

Образцы расписаний

В следующей таблице показаны некоторые примеры расписаний cron и их описание:

Пример расписания Формат облачного планировщика
Каждую мин. * * * * *
Каждую субботу в 23:45 (23:45) 45 23 * * 6
Каждый понедельник в 09:00 0 9 * * 1

Примечание: Если вы отключите Cloud Scheduler API во время выполнения задания
запланировано, а затем повторно включить его позже, любое задание, которое не удалось запустить в промежуточный период
запускается немедленно, а не в следующее запланированное время.

Летнее время

Для некоторых часовых поясов переход на летнее время может привести к тому, что задания будут выполняться за пределами ожидаемой частоты вращения педалей. Это потому что
Cloud Scheduler работает по настенным часам. В случаях, когда время может указываться дважды (например, в случае, когда часы
пружина назад), и ваше задание запланировано на это время, ваше запланированное задание может обнаруживать аномалии выполнения.

Если ваша работа требует очень определенной частоты вращения педалей, вы можете подумать о выборе часовых поясов, в которых не соблюдается летнее время.В частности, для Cloud Scheduler рекомендуется использовать UTC, чтобы полностью избежать проблемы.

Понимание синтаксиса Cron в планировщике заданий

Выражение cron — это строка, состоящая из 6 или 7 полей, разделенных пробелом. Поля могут содержать любые допустимые значения, а также различные комбинации разрешенных специальных символов для этого поля. Поля объяснены в следующей таблице:

Таблица 12-2 Поля в выражении Cron

секунд

Есть

0-59

, — * /

Минут

Есть

0-59

, — * /

Часы

Есть

0-23

, — * /

День месяца

Есть

1-31

, — *? / Д Ш

Месяц

Есть

1-12 или ЯНВАРЬ-ДЕКАБРЬ

, — * /

День недели

Есть

1-7 ИЛИ ВС-СБ

, — *? / L #

Год

ПУСТО, 1970-2099

, — * /

Выражения Cron могут быть такими простыми:

 * * * *? * 

Или выражения cron могут быть более сложными, например:

 0 0/5 14,18,3-39,52? ЯНВ, МАР, СЕНТ ПН-ПТ 2002-2011 

Программное обеспечение для работы с

Cron | ASCI

Что такое cron?

Cron — это планировщик заданий для UNIX и UNIX-подобных операционных систем.Cron используется для планирования задач, запускаемых в определенное время, например, в определенный день недели или день месяца. Cron автоматизирует обслуживание системы и запланированные задачи. Файл crontab — это тип файла, который содержит расписание записей cron, которые должны запускаться в указанное время.

Cron — это распространенный инструмент элементарной автоматизации. Подход элементарной автоматизации часто основывается на сценариях и основывается на точечных инструментах для конкретной платформы, таких как Cron. Другие общие инструменты для планирования задач включают агент SQL Server, планировщик задач Windows и бесплатные планировщики задач.Использование сценариев предлагает временное исправление, которое часто становится недостаточным и чрезмерно сложным, требуя частого обслуживания и ручных обходных решений для обновления сценариев, что приводит к более высоким затратам, невыполнению соглашений об уровне обслуживания, операционным узким местам и дополнительным простоям системы. Этот подход также часто создает дорогостоящие препятствия для масштабируемости, потому что этим инструментам планирования и подключаемым модулям традиционно не хватает корпоративного управления, и они должны внедряться на частичной основе, что требует больших затрат на изменение.

ИТ-организации, стремящиеся опережать потребности бизнеса завтрашнего дня, должны использовать современное решение автоматизации, рассчитанное на ускорение темпов изменений.

Лучше подход: архитектурный подход ActiveBatch

ActiveBatch — это независимое от языка сценариев решение для автоматизации рабочих нагрузок и планирования заданий, которое позволяет группам автоматизировать и координировать межплатформенные ИТ-процессы и бизнес-процессы.

ActiveBatch имеет параметры расписания по дате / времени для выполнения заданий в определенное время, например, день недели или день месяца. Это достигается за счет использования календарей, часовых поясов, пользовательских тегов и т. Д.Пользователи могут планировать рабочие процессы на основе рабочего дня, чтобы запланированные задачи выполнялись должным образом.

Интегрированная библиотека заданий ActiveBatch предоставляет сотни готовых заданий, которые упрощают разработку надежных межплатформенных рабочих процессов. Это означает, что запуск задания cron может быть запущен ActiveBatch. Кроме того, все это может быть выполнено без каких-либо пользовательских сценариев, что было бы сложно с базовым планировщиком задач. Сквозные рабочие процессы упрощают доставку данных в реальном времени и управление зависимостями в масштабах всего предприятия.Благодаря десяткам расширений для популярных приложений пользователи могут создавать и автоматизировать сложные рабочие процессы из центральной точки координации. ActiveBatch также поддерживает подключение к конечным точкам API и может выполнять функции командной строки.

Интегрируйте практически любое решение или технологию на рынке

  • Все основные операционные системы, включая Windows, Linux, UNIX и IBM iSeries AS / 400

  • Другие планировщики заданий, включая задания cron и планировщик заданий Windows

  • Приложения от IBM, Microsoft, SAP, VMware, Amazon и др.

  • Несколько внутренних баз данных, таких как SQL Server, Azure SQL и Oracle DBs

ActiveBatch полностью поддерживает модель безопасности Windows, включая Kerberos и Active Directory, что позволяет организациям использовать свои существующие учетные записи и группы для упрощения управления и безопасности.ActiveBatch — объектно-ориентированная система, поэтому все учетные записи пользователей являются объектами. В результате для всех заданий, связанных с учетной записью пользователя, требуется только одно изменение объекта учетной записи пользователя, а не несколько изменений каждого задания.

Мощные возможности автоматизации и оркестровки

  • Предоставлять данные в режиме реального времени

  • Защитите инвестиции в существующие сценарии с помощью возможностей управления жизненным циклом

  • Управление выделением ресурсов локальной и облачной инфраструктуры

  • Используйте балансировку нагрузки для сокращения времени ожидания

  • Обеспечивает оповещение; Каждое предупреждение доставляется с использованием различных методов доставки, включая электронную почту, запись в файл журнала событий, JMS и очереди сообщений Microsoft, SMS, Twitter, SNMP, Office Communicator и многое другое.

Программное обеспечение Cron Job | JAMS

Cron — это утилита планирования, встроенная в операционные системы UNIX и Linux. Crontabs с его заведомо загадочным синтаксисом может быть трудным в обслуживании. Но с помощью программного обеспечения для планирования заданий вы можете централизовать управление пакетными процессами Linux и UNIX в едином удобном интерфейсе. А комплексные функции планирования и автоматизации могут снизить затраты на предоставление услуг, даже если организации используют разнообразное сочетание дистрибутивов Linux и UNIX.

Зачем использовать Cron с программным обеспечением для планирования заданий?

Планирование

Cron широко распространено, поскольку оно встроено в серверы UNIX и предоставляет бесплатный способ начать автоматизировать некоторые задачи. Но ограничения на планирование crontab делают его менее чем идеальным выбором для планирования заданий на предприятии, потому что:

  • Планирование Cron недостаточно надежно для поддержки процессов корпоративного уровня на нескольких платформах или приложениях.
  • Создание и редактирование crontab вручную чрезвычайно подвержено ошибкам
  • В расписании Cron отсутствует немедленное сообщение об ошибках
  • Различные реализации UNIX имеют незначительные вариации, поэтому, если ваш центр обработки данных включает системы AIX, Linux, UNIX и Solaris — все со своей собственной версией планирования crontab — становится еще сложнее управлять планированием crontab в масштабе предприятия.

Организации, которые используют автоматизацию рабочих нагрузок с платформами и приложениями Linux и UNIX, получают такие преимущества, как:

  • Сниженный риск безопасности — Центральный командный центр устраняет ненужные административные входы.
  • Rapid Automation — Унифицированный язык для автоматизации означает меньше времени и денег, затрачиваемых на одноцелевые инструменты планирования.
  • Более короткое время разрешения — Даже при выполнении заданий на сотнях серверов Linux и UNIX пользователи JAMS могут выявить проблемы в их источнике и быстро решить их.

Преобразование без усилий с помощью планирования заданий и автоматизации рабочих нагрузок из JAMS

Программа для планирования заданий

JAMS включает встроенную утилиту преобразования для переноса файлов crontab, включая все их свойства.Импортируйте задания, находящиеся на любом сервере Linux или UNIX в вашей сети. После преобразования — процесс, который занимает несколько минут — вы можете применять десятки новых свойств для планирования и запуска заданий в соответствии с уникальными требованиями вашего бизнеса.

Встраивание процессов Linux и UNIX в рабочие процессы предприятия

JAMS помогает предприятиям получить максимальную отдачу от инвестиций в технологии, даже если отдельные ИТ-группы и бизнес-подразделения используют различные дистрибутивы и платформы для своих критически важных процессов.JAMS поддерживает все доступные дистрибутивы и делает пакетные процессы Linux и UNIX доступными для мощных, многоэтапных рабочих процессов, которые могут включать задания в Windows, i Series, z / OS, а также бизнес-приложения.

Программное обеспечение

Windows cron job организует сложные в обслуживании задания crontab UNIX в ваших системах Windows, UNIX и Linux. С помощью JAMS вы можете быстро и легко запланировать задания UNIX cron, которые управляются событиями для скоординированной пакетной обработки, межсистемного мониторинга и планирования заданий предприятия.Замените cron на JAMS, чтобы получить динамическое, но доступное решение для планирования заданий UNIX.

JAMS предлагает вам возможность:

  • Создание сложного настраиваемого расписания на основе событий
  • Наблюдение за управлением привилегиями пользователей с помощью ролевой безопасности
  • Отслеживание журнала, аудит и создание встроенных уведомлений
  • Доступ к информации об управлении заданиями с единой центральной консоли
  • Управляйте заданиями cron на корпоративных серверах с работы или дома

Руководство по выражениям Cron

Если у вас есть несколько лет опыта работы в экосистеме Java, и вы заинтересованы в том, чтобы поделиться этим опытом с сообществом (и, конечно же, получать деньги за свою работу), взгляните на » Напишите нам ».Ура, Ойген

1. Обзор

Проще говоря, cron — это базовая утилита, доступная в системах на базе Unix. Он позволяет пользователям планировать периодическое выполнение задач в указанную дату / время. И, естественно, это отличный инструмент для автоматизации многих процессов, которые в противном случае потребовали бы вмешательства человека.

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

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

Узнайте, как планировать задания с помощью Quartz API.

Как использовать аннотацию @Scheduled в Spring для запуска задач после фиксированной задержки, с фиксированной скоростью или в соответствии с выражением cron.

2. Работа с Crontab

Расписание cron — это простой текстовый файл, расположенный в папке / var / spool / cron / crontabs в системах Linux. Мы не можем редактировать файлы crontab напрямую , поэтому нам нужно получить к ним доступ с помощью команды crontab .

Чтобы открыть файл crontab , нам нужно запустить эту команду:

  crontab -e  

Каждая строка в crontab — это запись с выражением и командой для запуска:

  * * * * * /usr/local/ispconfig/server/server.sh  

Эта запись запускает упомянутый сценарий каждую минуту.

3. Выражение Cron

Давайте разберемся с выражением cron .

Состоит из пяти полей:

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

3.1. Специальные символы в выражении

  • * (все) указывает, что событие должно происходить для каждой единицы времени. Например, «*» в поле < минут> означает «за каждую минуту.”
  • ? (любой) используется в полях < день месяца> и < день недели> для обозначения произвольного значения и, таким образом, игнорирования значения поля. Например, если мы хотим запускать сценарий «5 числа каждого месяца», независимо от того, какой день недели приходится на этот день, мы указываем «?» в поле < день недели> .
  • — (диапазон) определяет диапазон значений. Например, «10-11» в поле <час> означает «10-е и 11-е часы.”
  • , (значения) задает несколько значений. Например, «ПН, СР, ПТ » в поле < день недели> означает дни «Понедельник, Среда и Пятница».
  • / (приращения) задает значения приращения. Например, «5/15» в поле < минут> означает «5, 20, 35 и 50 минут часа».
  • L (последний) имеет разное значение при использовании в различных областях. Например, если он применяется в поле < day-of-month> , это означает последний день месяца, т.е.е. «31 января» и так далее по календарному месяцу. Его можно использовать со значением смещения, например «L-3», которое обозначает «с третьего по последний день календарного месяца». В < день недели> он определяет «последний день недели». Его также можно использовать с другим значением в < день недели> , например «6L», что означает «прошлую пятницу».
  • W (день недели) определяет день недели (с понедельника по пятницу), ближайший к данному дню месяца. Например, если мы укажем «10W» в поле < day-of-month> , это означает «будний день около 10-го числа этого месяца.Таким образом, если «10-е» — это суббота, задание будет запущено «9-го», а если «10-е» — воскресенье, оно будет запущено «11-го». Если мы укажем «1W» в < day-of-month> и если «1st» — суббота, задание будет запущено в «3rd», то есть в понедельник, и не вернется к предыдущему месяцу.
  • # определяет «N-е» появление дня недели месяца, например, «третья пятница месяца» может быть обозначена как «6 # 3».

3.2. Примеры выражений Cron

Давайте посмотрим на несколько примеров выражений cron с использованием комбинаций полей и специальных символов:

В 12:00 п.м. (полдень) каждый день :

  0 12 * *?  

Каждые пять минут с 13:00. и окончание в 13:55 а затем с 18:00. и заканчиваются в 18:55, каждый день :

  0/5 13,18 * *?  

Каждую минуту с 13:00. и заканчиваются в 13:05, каждый день :

  0-5 13 * *?  

В 13:15 и 13:45 каждый вторник июня :

  15,45 13? 6 Вт  

В 9:30 а.м. каждый понедельник, вторник, среду, четверг и пятницу :

  30 9? * ПН-ПТ  

В 9:30 15 числа каждого месяца :

  30 9 15 *?  

В 18:00 в последний день каждого месяца :

  0 18 л *?  

В 18:00 с третьего по последний день каждого месяца :

  0 18 Л-3 *?  

В 10:30 в последний четверг каждого месяца :

  30 10? * 5L  

В 10 а.м. в третий понедельник каждого месяца :

  0 10? * 2 # 3  

В 12 часов ночи каждого дня в течение пяти дней, начиная с 10-го числа месяца :

  0 0 10/5 *?  

4. Специальные строки Cron

В дополнение к полям, указанным в выражении cron, также есть поддержка некоторых специальных предопределенных значений, которые мы можем использовать вместо полей:

  • @reboot — запускать один раз при запуске
  • @ год или @ годовой — запускать один раз в год
  • @monthly — запускать один раз в месяц
  • @weekly — запускать один раз в неделю
  • @daily or @midnight — запускать один раз в день
  • @ ежечасно — ежечасно

5.Вывод

В этой быстрой статье мы рассмотрели заданий cron и crontab .

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

Что такое Cron Job? — Задания Cron и запланированные задачи

Задание cron — это команда Linux, используемая для планирования задач, которые должны быть выполнены в будущем. Обычно это используется для планирования периодически выполняемого задания — например, для отправки уведомления каждое утро.Некоторые скрипты, такие как Drupal и WHMCS, могут потребовать от вас настройки заданий cron для выполнения определенных функций.

Для большинства заданий cron присутствуют три компонента:

  1. Сценарий, который должен быть вызван или выполнен.
  2. Команда, которая повторно выполняет сценарий. Обычно это устанавливается в cPanel.
  3. Действие или вывод сценария, который зависит от того, что делает вызываемый сценарий. Часто скрипты, называемые заданиями cron, изменяют файлы или базы данных.Однако они могут выполнять другие задачи, которые также не изменяют данные на сервере, такие как отправка уведомлений по электронной почте.

Большинство сценариев, требующих использования задания cron, дадут вам конкретные инструкции о том, что необходимо настроить, часто с примерами.

Использование cPanel для установки задания Cron

Чтобы добавить задание cron в cPanel, выполните следующие действия:

  1. Во-первых, вам необходимо войти в cPanel
  2. С панели инструментов выполните поиск для Cron Job или перейдите в меню Advanced и щелкните значок Cron Jobs

  3. Затем вам нужно будет выбрать адрес электронной почты, на который вы хотите получать выходные данные cron.Если адрес электронной почты, указанный рядом с Текущий адрес электронной почты действителен, просто оставьте его. Если вы хотите использовать другой адрес электронной почты, введите его в поле формы рядом с Электронная почта и нажмите Обновить адрес электронной почты , когда закончите

  4. В разделе с надписью Добавить новое задание Cron , вы можете указать, какую команду вы хотите запускать, а также ее частоту. Начните с ввода желаемой команды в нижнем поле формы, обозначенном Command .Вы можете указать здесь любую команду Linux или, если у вас есть файл, который вы хотите запустить в определенное время, просто укажите путь к файлу, который вы хотите запустить


  5. Затем вернитесь вверх в поле формы с меткой Общие параметры и выберите частоту выполнения команды из доступных параметров, перечисленных в раскрывающемся меню. Это автоматически обновит другие настройки времени в соответствии с вашим выбором.

  6. В качестве альтернативы вы можете вручную ввести повторяющуюся частоту, изменив индивидуальные настройки времени. Минуты , Час , День , Месяц и Рабочий день все могут быть изменены для достижения желаемых результатов

  7. Когда вы закончите делать свой выбор, просто нажмите Добавить новый Cron Кнопка Job для завершения процесса

И теперь вы успешно запланировали выполнение команды с помощью инструмента Cron Jobs в cPanel. Если у вас есть другие команды, которые необходимо установить, просто повторите этот процесс для любых других команд.

Не пользуетесь cPanel? Без проблем! Читайте дальше, чтобы узнать, как планировать задания cron с помощью панели управления Plesk.

Использование Plesk для установки задания Cron

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

  1. Сначала войдите в свою панель управления Plesk
  2. После входа в систему, в левой части панели инструментов в разделе Server Management выберите опцию для Tools & Settings
  3. Теперь на правой боковой панели в разделе Tools & Resources нажмите Scheduled Tasks
  4. На следующем экране нажмите Plesk Administrator User
  5. На экране Scheduled Tasks в разделе Tools нажмите Add New Task
  6. На следующем экране, предоставьте всю запрашиваемую информацию, как показано на изображении ниже

  7. Теперь прокрутите немного вниз и в разделе под Приоритет задачи , вы увидите календарь.Здесь вы можете выбрать частоту выполнения вашей команды. В этом примере мы выбрали Ежедневно , Ежемесячно и менее Дней недели мы также выбрали Ежедневно
  8. Если вы хотите запланировать другую частоту, с которой ваша команда будет запущена, просто установите соответствующие флажки. Например, если вы хотите, чтобы запланированная задача запускалась каждую минуту, каждый час или каждый день, ваш календарь будет выглядеть так:

  9. После того, как вы закончите планирование своей задачи в соответствии с вашими требованиями, просто нажмите OK , чтобы подтвердить свой выбор

И теперь вы успешно запланировали задание cron с помощью инструмента запланированных задач в Plesk.

Теперь, когда вы знаете, как планировать задачи с помощью cPanel и Plesk, вы должны быть готовы начать планирование заданий cron по мере необходимости. Просто помните, что если у вас возникнут какие-либо проблемы, не стесняйтесь оформить заявку в службу поддержки, и наша команда поддержки будет рада помочь.

Популярные ссылки

Ищете дополнительную информацию о вакансиях в Cron? Ищите в нашей базе знаний!

Заинтересованы в дополнительных статьях о веб-хостинге? Перейдите на нашу страницу категорий с помощью панели слева или ознакомьтесь со следующими популярными статьями:

Популярные теги в этой категории включают: DNS, FTP, IIS, записи MX и другие.

Не видите то, что ищете? Используйте строку поиска вверху для поиска по всей нашей базе знаний.

Разница в Hivelocity

Ищете лучшее решение для выделенного сервера? На рынке услуг частного облака или колокации? Ознакомьтесь с обширным списком продуктов Hivelocity, чтобы узнать о выгодных сделках и предложениях.

Благодаря лучшему в своем классе обслуживанию клиентов, доступным ценам, широкому спектру полностью настраиваемых опций и уникальной сети, Hivelocity — это хостинговое решение, которого вы так долго ждали.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *