Как сохранить файл после ввода «crontab-e»

Преимущества использования серверного задания Cron

Замена стандартной работы cron в WordPress серверной работой cron очень полезна во многих отношениях:

  • Надежные, точные задания cron, которые запускаются вовремя, как и ожидалось.
  • Сделайте ваш сайт WordPress быстрее для ваших пользователей / посетителей.
  • Устранить высокую загрузку процессора, вызванную WordPress.

Все преимущества важны, но особенно важно второе преимущество. К сожалению, когда кто-то посещает ваш веб-сайт, и у WordPress Cron есть задача для запуска в этот момент, он запускает эту задачу во время посещения, увеличивая время запроса или даже все может закончится тем, что сервер покажет посетителю пустую страницу, если задача не может быть выполнена полностью

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

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

Синтаксис crontab-генераторов

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

Crontab.guru

crontab.guru — отличный сайт, чтобы изучить различные примеры cron-заданий. Просто введите данные и сайт самостоятельно сгенерирует конечное задание.

Сайт Crontag buru

На сайте есть разделы, посвящённые примерам и советам.

Crontag Generator

crontab-generator.org — ещё один сайт, который помогает быстро сгенерировать crotab-выражения. Принцип такой же: нужно ввести все необходимые данные в формы и нажать кнопку «Generate Crontab Line» внизу страницы.

Сайт Crontab Generator

Вот такое конечное выражение вы увидете на сайте:

Помимо этого, есть веб-инструмент «Crontab UI», который обеспечивает не только простоту создания crontab-заданий, но и безопасность. Вот статья, посвящённая этому инструменту.

CRON в Osclass

Как говорилось ранее, иногда нам нужно выполнять различные «задачи», от отправки оповещений по электронной почте до подсчета количества элементов в категории или разрешения плагинам, таким как sitemap, выполнять другие действия.
В идеальном мире на каждом сервере был бы включенный CRON, а Вы могли бы использовать такое количество задач cronjobs, какое бы только потребовалось. Но поскольку мы знаем, что это не всегда так, мы предлагаем данную встроенную функцию.
Настройка CRON при помощи Osclass

Настройка встроенного функционала при помощи Osclass

Чтобы использовать встроенные функции, Вам нужно будет отметить опцию Auto-cron в панели администратора, в разделе Настройки > Главные.

Настройте CRON своей системы при помощи Osclass

Чтобы использовать функционал CRON своей системы, Вам нужно снять пометку с опции Auto-cron в панели администратора, в разделе Настройки > Главные.

Cron доступен только на Unix системах (Linux, должен быть на Mac, но мне не удалось с ним поэкспериментировать). Большинство веб-серверов работают на дистрибутивах Linux, так что это не должно быть проблемой. На системах Windows существует несколько альтернатив CRON, которые работают по-разному. Обычно, Вам нужно войти на свой сервер через SSH (доступ через SSH) и ввести следующее в командной строке/терминале:
crontab -e
Вы попадете в список задач cron (cronjob list) в редакторе терминала (обычно vi, vim, nano или emacs). Затем, в зависимости от редактора, потребуется сохранить, закрыть, отредактировать сам файл, и т.п.
Большинство хостинг-компании не будут предлагать доступ по SSH, а среди тех, кто предлагают, некоторые из них не предложат Вам возможности изменять CRON, но предложат обходное решение через админ панель. Например, Dreamhost (в разделе Goodies > Cron) предлагает «простого мастера» для выполнения задач cronjobs, но ограничивает по одной задаче cronjob на пользователя (через терминал/SSH у Вас не будет ограничений).
Мы не можем предоставить вам больше информации, поскольку все зависит от Вашей хостинг компании/сервера.
Любой cron-задаче требуется интервал времени/время и команда, которую нужно выполнить, например, как (если хотите больше подробностей — загляните на википедию, я не буду говорить о различных параметрах времени)
* * * * * command params

В нашем случае мы хотим выполнить php файл — нам нужно иметь установленные версии php-cli или php-cgi, которые являются исполняемыми файлами PHP. (ПРИМЕЧАНИЕ: Некоторые сервера будут иметь только apache mod версию PHP, поскольку производительность с mod-версией снижается, а также будут иметь несколько меньших функций. Странно, что у некоторых серверов этого нет, но такое тоже может случиться! Спросите у своей хостинг-компании!). Нам нужно работать в CLI (c интерфейсом командной строки или исполняемой) версии PHP, мы должны использовать полный путь к файлу (ваш phpinfo может помочь вам в этом, или спросите у своего хостинг-провайдера!). Затем мы должны передать в качестве параметра или аргумента этот PHP файл, снова используя полный путь (ПРИМЕЧАНИЕ: Обычно, на серверах коллективного доступа для хранения пользователей и сайтов используется домашний каталог, поэтому Ваш путь будет /home/your_username/public_html, и опять, «public_html» — это одна из наиболее используемых папок, но ее название может отличаться, к примеру быть website, yourdomain.com и др. Кроме того, если Вы владеете частным серверов, то веб-путь будет скорее всего /var/www)

Crontab (если можно получить доступ через ssh)
Получите доступ к своему серверу через SSH, напечатайте
crontab -e

Вся задача cronjob должна выглядеть следующим образом
0 * * * * usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t hourly
0 0 * * * usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t daily
0 0 * * 0 usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t weekly
Установлен запуск каждый час (путь исполняемого файла PHP может отличаться)
Мастер cron/управления задачами
На некоторых хостинг-сервисах не предоставляют возможность устанавливать задачи cron вручную, вместо этого они предлагают своим клиентам воспользоваться «мастером» или опцией в админ-панели для настройки заданий.

Различные настройки

• Наиболее благоприятный вариант
Вы можете запускать одну или несколько задач cronjobs. В таком случае, выплните oc-includes/osclass/cron.php в своей задаче cronjob ‘each hour’ (каждый час).
Не забудьте снять галочку в Настройки > Главные > Автоматический запуск Cron.
• Auto-cron
Если Вы не можете задать ни одну задачу cronjob, не хотите или не знаете, как задать ее, просто пометьте

Шаг 2 — Создание нового задания

  1. Нажмите на “Создать новое задание” из перечисленных действий над списком заданий планировщика Cron.
  2. На следующей странице вам нужно будет настроить ваше задание в планировщике cron. Первый раздел называется “Подробная информация о задании”. Здесь вам понадобится заполнить такие настройки:
    • “Выполнять задание от имени пользователя” – нужно выбрать от имени какого пользователя UNIX будет выполняться запланированное задание. По нажатию на кнопку справа от поля, вы сможете получить весь доступный список пользователей на сервере.
    • “Разрешить выполнение?” – вы можете выбрать, будет ли ваше запланированное задание активным сразу после создания. Эту настройку можно легко изменить позже, если, например, вы только хотите активировать запланированное задание позже, а не сразу же после создания.
    • “Команда” – здесь следует написать команду, которую вы хотите запускать периодически. В этом примере запускается shell-скрипт, поэтому указан путь к файлу, который надо, чтобы был выполнен. Но вы можете написать любую команду, которую пожелаете.
    • “Стандартный поток ввода команды” – содержимое этого поля будет передано команде, когда запланированная задача будет выполняться. Если, например, ваша команда была mail foo@bar.com , содержимое, введённое в этом поле будет выслано на email адрес. (Примечание: это поле является необязательным).
    • “Description” – ваше описание запланированной задачи (не обязательное поле) для ссылки на себя.
  3. Следующий раздел этой страницы называется “Время начала выполнения”. Здесь вы сможете выбрать, когда ваша запланированное задание должно будет выполниться. Есть два варианта:
    • “Simple schedule” – вы можете выбрать из выпадающего списка уже заданный интервал.
    • “Times and dates selected below” – если вы выберите эту опцию, потребуется настроить запуск запланированного задания вручную, путём выбора минут, часов, дней и так далее из списка ниже.
  4. Последний раздел называется “Date range to execute”. В этом разделе вы можете установить интервал дат, если вы хотите, чтобы ваша запланированная задача выполнялась одну или две недели или любой другой период времени.
    • Выберите “Run on any date”, если хотите, чтобы задание было активным, пока вы его не отключите.
    • Выберите “Only run from … to …” и заполните нужные даты, если вы хотите установить интервал дат, в которые запланированные задания планировщика Cron будут активны.
  5. Когда вы настроите все, как хотите, прокрутите страницу вниз и нажмите “Создать”.
  6. Если задание cron установлено верно, вы увидите его в списке заданий планировщика Cron:

Документация — Установка. 5. Настройка cron

Что такое крон (cron)?

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

Cron на хостинге не разрешает устанавливать обновление 1 раз в минуту. Что делать?

Вы можете использовать обновление 1 раз в 2 минуты или 1 раз в 5 минут. Задержка при обновлении данных будет немного больше, но на другую функциональность это не повлияет.

К примеру, /home/admin/data/server.ru/track-show/process_clicks.php >/dev/null 2>&1

Это не принципиально.

Сильно ли нагружает ресурсы сервера запуск cron каждую минуту?

Короткий ответ

1. Крон не грузит сервер, так как крон это всего лишь расписание, когда запускать ваш скрипт.

2. Сервер грузит регулярное выполнение вашего скрипта. Потребление ресурсов скриптом зависит от количества данных, которые он должен обработать. В нашем случае это количество переходов в минуту.

3. Да, это может быть чрезмерно затратно по ресурсам, зависит от того что делает скрипт и от того, сколько ресурсов вам выделил хостер.

Полный ответ

Запуск любых скриптов — приводит к определенной затрате ресурсов сервера. Регулярный запуск скриптов увеличивает эту нагрузку на количество запусков.

Была нагрузка в 1 единицу, запустили 60 раз в час — стала 60 единиц. Если хостер определяет нагрузку как количество потраченных ресурсов сервера за день или месяц — при регулярном выполнении скриптов вы можете выйти за какие-нибудь лимиты хостера.

Вам необходимо выяснить каким образом самостоятельно мониторить статистику загрузки вашего хостинга и настроить интервалы для запуска крона исходя из этого. Может быть вам достаточно обновления статистики раз в 5 минут (это всего 12 раз а час) или даже 10 минут (6 раз в час).

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

Итак, общий принцип. Каждый запуск ест ресурсы. Чтобы снизить общее потребление можно а) уменьшить затраты на каждый запуск. Для этого нужно создавать меньше данных, то есть лить через трекер меньше трафика. б) уменьшить количество запусков. Для этого интервал для запуска крона делаем больше (5 минут, 10 минут, 30 минут, 1 час или даже больше, если вам не нужна оперативная информация и вы все равно смотрите статистику за прошлый день). Однако, от того что вы запускаете скрипт реже, данных которые он должен обработать не становится меньше. Мы выигрываем только на накладных расходах, которые не зависят от количества данных.

Общепринятой рекомендацией считается запуск подобного рода скриптов (трекеры, tds) на VPS или выделенных серверах. Так как любой простой из-за исчерпания ресурсов или каких-то проблем у хостера с вашими скриптами стоит вам вполне конкретных денег, впустую потраченных на рекламу или трафик.

Как добавить задание в Cron? — Вопросы и ответы — Джино

Задание надо добавлять в контрольной панели «Джино» в разделе «Хостинг / Управление / Задания по расписанию».

Нажмите на кнопку «Новое задание» и в строке «Задание» введите путь к скрипту (если это исполняемый файл):

~/папка_со_скриптом/файл_скрипта.sh > /dev/null

Или вызов программы php или curl для запуска PHP-скриптов:

phpX.X ~/папка_со_скриптом/файл_скрипта.php > /dev/nullcurl -s ‘http://ваш-домен.ru/папка_со_скриптом/файл_скрипта.php’ > /dev/null

(Здесь X.X — это версия PHP, которая вам необходима. Например, для PHP 5.6 команда будет выглядеть так: php5.6. Рекомендуется использовать ту же версию PHP, на которой работает ваш сайт. Ее можно узнать в разделе «Хостинг / Управление / Настройки веб-сервера / Настройки PHP» контрольной панели.)

Способ с использованием php более предпочтителен: в этом случае не будет накладных расходов на установку HTTP-соединения и отправку запроса, обработка скрипта не будет занимать процесс веб-сервера, и на него не будут действовать некоторые ограничения ресурсов.

В полях: «Минуты», «Часы», «Дни», «Месяцы» и «Дни недели», надо указать, когда и с какой периодичностью должно запускаться ваше задание. Формат всех этих полей идентичен: можно указать либо конкретные значения, разделив их запятыми, либо диапазон, разделив граничные значения дефисом, либо интервал в формате «*/N», где N — продолжительность интервала. Чтобы задание выполнялось, например, каждый день или каждый месяц, в соответствующее поле нужно поставить символ «звездочку».

Минуты: 1,20 — скрипт будет выполняться только каждую первую и двадцатую минуты.Часы: 0-4 — скрипт будет выполняться только с 0 часов до 4 часов включительно. Например, если в поле «Минуты» будет стоять «*», то скрипт будет выполняться каждую минуту с 0:00 до 4:59.Дни: * — скрипт будет выполняться каждый день.Месяцы: */2 — скрипт будет выполняться только каждый второй месяц.Дни недели: 1-5 — скрипт будет выполняться только с понедельника по пятницу (воскресенье можно обозначать цифрами 7 или 0).

Примеры заданий:

Пример №1.Чтобы ваш скрипт выполнялся ежедневно в 10:30 и 22:30, нужно задать следующие значения полей:Минуты: 30Часы: 10,22Дни: *Месяцы: *Дни недели: *

Пример №2.Чтобы ваш скрипт выполнялся каждые 15 минут, нужно задать следующие значения полей:Минуты: */15Часы: *Дни: *Месяцы: *Дни недели: *

Пример №3.Чтобы ваш скрипт выполнялся в начале каждого часа, но только в воскресение, нужно задать следующие значения полей:Минуты: 0Часы: *Дни: *Месяцы: *Дни недели: 7

Чтение Crontab

Cron решает, какие команды когда запускать, читая серии файлов под названием crontab. Общесистемный crontab можно просмотреть в «/etc/crontab»:

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

В файле есть несколько частей, в которых следует разобраться.

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

Остальная часть файла определяет фактические команды и планирование. Каждая строка в этом списке представляет собой запись или строку в таблице. «tab» в crontab означает «table» (таблица).  Каждая ячейка таблицы разделена двоеточием или табами.

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

По каким причинам может не работать крон?

1. Путь до файла cron.php неправильный.

2. Ошибка при запуске cron.php

3. У консольной версии PHP не подключен ioncube.

Проверить можно, запустив команду крона из консоли сервера.

4. Используется curl (wget), который не установлены на сервере.

Попробуйте оба варианта: с wget и с curl

Обратите внимание, что при использовании curl и wget в команде должен быть прописан URL файла, а не его системный путь.. 5

Запускается PHP старой версии

5. Запускается PHP старой версии.

Частый случай на хостингах с поддержкой нескольких версий PHP. Посмотрите у хостера в документации по крону, как выполнять PHP-скрипты.

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

Путь к интерпретатору в php-срипте

Большинство задач имеет множество решений. Зачастую сложно сказать какое из них оптимально, но речь не об этом.

Символ «решетка» () в PHP является комментарием, но последовательность (англ. bang line, hash-bang или she-bang) имеет специальное значение – она указывает путь к интерпретатору скрипта.

Дело в том, что в UNIX-подобных операционных системах скрипты могут создаваться на разных языках: PHP, Perl, Python и т. д. Когда скрипт выполняется веб-сервером, он ориентируется на расширение файла (например: , , и т. д. – это обычные расширения для PHP интерпретатора). UNIX-подобные операционные системы на расширение файла, как правило, не ориентируются – его зачастую у файла просто нет. Система считывает первую строку и ищет обработчик скрипта.

В ранее упомянутом php-срипте, первой строкой у меня идёт запись:

#!/usr/local/bin/php

Опять же, путь к интерпретатору PHP у вас может отличаться от указанного пути в примере, т. к. всё зависит от настроек веб-сервера.

Timeweb.ru

1. Зайдите в раздел «Crontab».

2. Добавьте задачу:

Тип файла ;

Периодичность ;

Нажмите на кнопку выбора файла, выберите cron.php

Затем добавьте перед строкой (обратите внимание на пробел между двумя частями команды).. В случае, если включили PHP 7.0 у сайта, используйте .

В случае, если включили PHP 7.0 у сайта, используйте .

Если не работает:

  1. Проверьте на странице «Настройки > Производительность», что хранилище для обработчика выбрано «Файлы» или «MySQL», но НЕ «Redis».
  2. На странице Crontab (в панели timeweb) включите уведомления на email (Кнопка «Указать ящик»). Так вы сможете плучать уведомления о работе крона.

Установка CRON задания на хостинге REG.RU [Документация AMX MONITORING]

1. Покупаем хостинг на сайте reg.ru

Я выбирал тариф Host-1 ( дешевые не пробывал типа Host-Lite, но не уверен что он там будет работать) Добавляем домен и т.д… Думаю разберетесь

Пишем в техническую поддержку reg.ru (думаю найдете где писать)

В ответ Вам пришлют примерно следующий ответ

Заполняем примерно так же, поле «Команда» вставить команду которую Вам дал хостер

Нажимаем ок и сохраняем

6. Завершение

Вам должно было выдать вот такое

После этого добавляем еще одно задание для файла other.php, просто в команде замените game_cron.php на other.php, выставляем время 1 час И нажмите OK

Обязательно нужно защитить эти 2 файла, читаем инструкцию дальше

Открываем файл .htaccess, он находится в корне мониторинга.

И видим там строки

## deny from all ## ## deny from all ##

И раскоментируем их, т.е делаем вот так

deny from all deny from all

Поздравляю CRON настроен

manual/cron/reg_ru.txt · Последние изменения: 19:18 21/01/2018 (внешнее изменение)

Далее, образование о cron:

Каждый пользователь системы может иметь свой собственный файл crontab. Расположение корневых и пользовательских файлов crontab зависит от системы, но они обычно ниже .

Существует системный файл , каталог может содержать фрагменты crontab, которые также читаются и выполняются cron. Некоторые дистрибутивы Linux (например, Red Hat) также имеют , которые являются каталогами, скрипты внутри которых будут выполняться каждый час /день /неделя /месяц , с привилегиями root.

root всегда может использовать команду crontab; обычные пользователи могут получить или не получить доступ. Когда вы редактируете файл crontab с помощью команды и сохраняете его, crond проверяет его на предмет базовой действительности, но не гарантирует, что ваш файл crontab будет правильно сформирован. Существует файл с именем , который укажет, какие пользователи не могут использовать cron. Местоположение файла зависит от системы и может быть удалено, что позволит всем пользователям использовать cron.

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

crontab detailss, как сформулировать команду:

Команда crontab представлена ​​одной строкой. Вы не можете использовать для расширения команды на несколько строк. Символ hash () представляет комментарий, который означает, что все, что на этой строке, игнорируется cron. Ведущие пробелы и пустые строки игнорируются.

Будьте ОЧЕНЬ осторожны при использовании знака процента () в вашей команде. Если они не экранированы , они преобразуются в новые строки, и все после первого неэкранированного передается вашей команде на stdin.

Существует два формата файлов crontab:

  • Пользователь crontabs

  • Общесистемные фрагменты и

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

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

  • Поля разделяются пробелами или вкладками.
  • Для указания списка используется, например, 1,4,6,8 запятая (), которая означает, что она работает в 1,4,6,8.
  • Диапазоны задаются тире () и могут быть объединены со списками, например. 1-3,9-12, что означает от 1 до 3, а затем между 9 и 12.
  • Символ может использоваться для введения шага, например. 2/5, что означает начало с 2, затем каждые 5 (2,7,12,17,22 …). Они не завершают конца.
  • Звездочка () в поле обозначает весь диапазон для этого поля (например, для поля минут).
  • Диапазоны и этапы могут быть объединены, например. означает начало с минимума для соответствующего поля, затем каждые 2, например. 0 за минуты (0,2 … 58), 1 в течение месяцев (1,3 … 11) и т. Д.

«Сделал работу и ухожу»

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

Эту проблему позволяет решить другой системный демон, имя которого anacron.
В отличие от cron, он работает по следующему принципу. При запуске
(а запускается он во время старта системы из инициализационных скриптов)
он просматривает свой
конфигурационный файл (обычно /etc/anacrontab), в котором для каждого задания указывается
периодичность (в сутках), с которой должно повторяться выполнение этого задания. Далее
anacron проверяет, выполнялось ли данное задание в течение последних n дней. Если нет,
anacron запускает на выполнение команду, указанную в строке задания. При этом выполнение
команды может осуществляться с некоторой задержкой, величина которой (в минутах) должна быть
указана в строке задания. После выполнения задания anacron записывает дату
выполнения в
специальный файл, содержащий записи о времени последнего выполнения данного задания, чтобы знать, когда надо
выполнять это задание снова. Эти файлы сохраняются в каталоге /var/spool/anacron. В файл
записывается только дата, часы и минуты не запоминаются.

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

Конфигурационный файл /etc/anacrontab может содержать строки трех типов: строки описания
заданий, строки задания переменных окружения и строки комментариев. Строка описания заданий имеет
следующий формат:

          период  задержка  идентификатор_задания  команда

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

Строки задания переменных имеют стандартный формат:

          ИМЯ_ПЕРЕМЕННОЙ = ЗНАЧЕНИЕ

В качестве строк комментария может выступать пустая строка, строка состоящая только из
пробелов или строка, содержащая произвольную последовательность символов, начинающуюся символом
‘#’ (перед которым может стоять любое количество пробелов).

Приведу в качестве примера файл /etc/anacrontab из стандартной установки дистрибутива Red Hat
Linux:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# These entries are useful for a Red Hat Linux system.
1	5	cron.daily		run-parts /etc/cron.daily
7	10	cron.weekly		run-parts /etc/cron.weekly
30	15	cron.monthly		run-parts /etc/cron.monthly

Как видите, в Red Hat утилита anacron «подстраховывает» демон cron, запуская периодические
задания cron-а, если последний почему-либо их не запускал. Благодаря этому, в частности, скрипт
logrotate регулярно (точнее, при каждом запуске компьютера) выполняется,
несмотря на то, что демоном crond он не
запускается из-за выключения компьютера на ночь.
Среди регулярно запускаемых cron-ом скриптов (в каталогах
/etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly) вы найдете скрипт
0anacron, который заботится о том, чтобы обновить записи о времени последнего
выполнения тех заданий, которые поручены обеим демонам (чтобы
исключить их повторное выполнение anacron-ом).

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

Демон anacron запускается при старте системы и, выполнив предписанные
ему задания, завершает работу. Наверное поэтому нет никаких утилит, специально предназначенных
для ввода новых заданий демону anacron. Такие задания может давать только суперпользователь
путем прямого редактирования файла /etc/anacrontab. По-видимому, основное назначение
этого демона — выполнять какие-то работы по обслуживанию системы после периодов долгого простоя.

Пример

Рассмотрим пример создания файла crontab для пользователя user ,домашняя директория /home/user

Задача: запускать каждую минуту файл /home/user/mail, который будет отправлять почту

#содержимое файла mail (файл должен быть с правами на запуск! например -rwxr-xr-x)
#!/bin/bash
mess="test cron"
echo "$mess" |mutt -s "subj" -m application/octet-stream bob@server.ru

1.Создаем временный файл /home/user/test содержимое файла test такое:

SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/mail

2. Запускаем в терминале команду crontab /home/user/test

Все. После этого в каталоге /var/spool/cron будет создан файл «user» примерно с таким содержимым

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/home/user/test installed on Mon Mar 29 02:31:34 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/mail

и файл /home/user/mail будет запускаться демоном cron каждую минуту.

Доступ в каталог /var/spool/cron непривилегированому пользователю закрыт, что бы посмотреть юзером «user»
есть ли у него файл crontab ,достаточно набрать команду crontab -l , если файл существует-будет показано его
содержимое.

Для удаления файла используется команда crontab -r

Для редактирования crontab -e

Для управления файлами crontab пользователем «root» используется синтаксис:

-------------------------
crontab -u user_name file       -создание файла crontab
-------------------------        из файла "file" для
                                  юзера "user_name"

-u означает чей crontab будет обработан, Если опция не задана, то будет обработан crontab того
пользователя, который запустил команду crontab.

-------------------------
crontab -u user_name -l       -просмотр файла crontab
-------------------------       юзера "user_name"

-------------------------
crontab -u user_name -r       -удаление файла crontab
-------------------------       юзера "user_name"

-------------------------
crontab -u user_name -e       -редактирование файла crontab
-------------------------      юзера "user_name" используя
                               редактор, заданный переменной
                               окружения VISUAL или EDITOR

Отчет

У Cron существует настройка, чтобы настроить уведомления о его работе на электронную почту. Это особенно полезно, если при работе случится какая-либо ошибка. Чтобы включить такие уведомления на почту, необходимо в crontab вписать строчку:

MAILTO= info@mydomain.com

После MAILTO= указывается необходимая почта. Указать их можно сразу несколько, перечислив через запятую. Теперь, если вдруг случится ошибка, вы будете проинформированы об этом. При чем, к вам на почту будут приходить и результаты работы скриптов. Однако, если данная функция вам мешает, ее можно и отключить, введя в конце задачи команду > /dev/null 2>&1.

Индивидуальные Crontab-файлы пользователя

Разобравшись с синтаксисом cron, можно использовать его для планирования задач пользователя. Это делается при помощи команды «crontab».

Поскольку команды в crontab пользователя будут запускаться с привилегиями данного пользователя, столбец «user» в индивидуальных crontab’ах не существует.

Чтобы увидеть текущий crontab, введите:

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

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

Чтобы отредактировать crontab, наберите:

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

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

К примеру, если бы в файле нужно было повторять (echo) команду «date» каждые 15 минут каждую среду, то нужно было бы внести такую строку:

Затем можно сохранить файл, и, запустив «crontab –l», увидеть только что созданное правило:

Если нужно отредактировать crontab конкретного пользователя, можно добавить опцию «-u username». Это можно сделать только как root или как пользователь с root-привилегиями.

К примеру, если нужно что-либо внести в crontab «root», используйте:

Примеры Crontab

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

Эта таблица мне очень помогает и надеюсь поможет вам.

Вот самые распространенные примеры расписаний cron заданий, которые могут быть найдены практически в любом в Linux:

Рассписание Задание
echo «Запуск cron задания каждую минуту»
echo «Запуск cron задание каждые 5 минут»
echo «Запуск cron задания каждые 30 минут»
echo «Запуск cron задания каждый час»
echo «Запуск cron задания каждые 3 часа»
echo «Запуск cron задания каждый день в 13:00»
echo «Запуск cron задания каждый день в 2:30»
echo «Выполнять задание каждый день в полночь»
echo «Запуск cron задания каждое Воскресенье»
echo «Запуск cron задания каждый Понедельник»
echo «Запуск cron задания в первый день каждого месяца»
echo «Запуск cron задания каждый год первого Января»

Как заменить WordPress Cron?

Это быстро и легко, позвольте мне показать вам, как! 2 шага.

1. Отключите задание WordPress Cron

Во-первых, отключите задание WordPress cron, открыв свой файл конфигураций wp-config.php и поместив в него следующую строку кода PHP.

// Поместите строку кода ниже в ваш файл wp-config.php
// Определение константы в true скажет WordPress прекратить выполнение задания cron

define (‘DISABLE_WP_CRON’, true);

1
2
3
4

// Поместите строку кода ниже в ваш файл wp-config.php
// Определение константы в true скажет WordPress прекратить выполнение задания cron
 

define(‘DISABLE_WP_CRON’,true);

Код просто определит, DISABLE_WP_CRON в true и WordPress перестанет сам запускать задания cron, а будет ждать их вызова.

2. Создайте задание сервера Cron

Поскольку больше не выполняется задание WordPress cron, вам необходимо настроить задание на сервере cron для его замены. Задание сервера cron на самом деле не будет запускать запланированные задания напрямую, оно просто выполняет задание, которое ваши посетители выполняли до сих пор. Серверный крон будет запускать проверку времени и даты заданий в WordPress, по сути вместо посетителей ваши задачи будет дергать серверный CRON.

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

Так что войдите в свою cPanel и перейдите в Advanced > Cron Jobs.

Затем в «Добавить новое задание Cron» (Add New Cron Job) тут вы можете создать задание Cron. Я рекомендую вам использовать интервал от 5 до 15 минут в зависимости от вашего сайта и того, что он делает. Используйте раскрывающееся меню «Общие настройки», чтобы выбрать интервал для задания cron.

Лучшая команда для использования, PHP но вы можете использовать другие, аналогичные команды, если вы предпочитаете изменить ее. Вот команда, которую использовали мы на снимке:

php -q /home/username/public_html/wp-cron.php

Ссылка на основную публикацию