Открыть php ini. Лимит загрузки WordPress доставляет вам неудобства? Вот как это можно исправить. Увеличение лимита загрузки на MAMP

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

Как настроить cron средствами панели ISPmanager 5

Настраивайте cron-сценарии через панель управления в разделе Система → Планировщик

Чтобы добавить новые задания, нажмите «Создать» . Откроется интерактивный редактор cron-сценариев:


В поле «Команда» укажите полный путь до скрипта или команду, которая должна выполняться (для системных команд полный путь можно не указывать). Например, полный путь до файла script.pl, размещенного в корне площадки, будет выглядеть так:

/var/www/u12345/data/www/script.pl

Убедитесь, что файл, который нужно запустить, имеет права на чтение+исполнение (r+x) для владельца файла. Поменять права на нужные можно командой:

Chmod 750 script.pl

В поле «Описание» вы можете сделать пометку, чтобы не забыть что выполняет данный сценарий

Базовый - вы выбираете один из перечисленных вариантов в строке «Выполнить» : каждый час, ежедневно, еженедельно, ежемесячно, ежегодно, при запуске.

Экспертный - гибкая настройка периодичности запуска: минуты, часы, дни месяцев, месяцы, дни недели (0 - воскресенье). Формат ввода: * - все минуты; */n - каждые n минут; n - с началом минуты n; a,b,c-e - с началом минут a,b,c,d,e

Примеры базового режима настройки периодичности запуска:



Примеры экспертного режима настройки периодичности запуска:

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

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

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

Когда все поля будут заполнены (кроме поля «Описание» , оно необязательное), нажмите «ОК» .

Отправка отчетов на email о выполнении сценария

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


Нажмите на кнопку «Настройки» и в поле «Адрес e-mail» укажите email, на который необходимо отправлять уведомления о выполнении сценариев.


В настройках сценария убедитесь, что не стоит галочка напротив поля «Не отправлять отчет по e-mail» .

Как настроить cron по ssh

Конфигурирование сценариев cron производится через unix shell. Определите, какие программы нужно запустить, и узнайте полные пути к ним на диске сервера. Для этого перейдите с помощью команды cd в каталог, где находится запускаемая программа, и узнайте полный путь к этому каталогу командой pwd. Путь может выглядеть так - /home/u12345/scripts/script.pl.

Убедитесь, что файл имеет права на чтение+исполнение (r+x) для пользователя, от которого вы запускаете скрипт. Поменять права на нужные можно командой chmod 750 script.pl

750 - полные права владельцу файла, группе – чтение и исполнение, остальным – доступ запрещен.

Выполните команду crontab -e – планировщик будет менять план пользователя, от имени которого вы запускаете cron. При первом запуске будет предложен выбор текстового редактора. Выберите редактор с которым вы уже знакомы. Как пример мы рассмотрим текстовый редактор vi. После ввода команды вы окажетесь в текстовом редакторе vi (п), где сможете вводить текст сценария для cron.

Краткая справка по редактору vi:

  • для вставки текста нажмите i, затем вводите текст
  • для удаления символов нажмите ESC, а затем наберите x
  • для выхода из vi без сохранения изменений нажмите ESC, а затем наберите:q!
  • для сохранения и выхода нажмите ESC, а затем наберите:wq

Задания для cron пишутся по одному в строке. После каждой строки, в том числе после последней или единственной, обязательно нажмите enter, иначе задания работать не будут.

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

поле1 поле2 поле3 поле4 поле5 команда

Значения первых пяти полей:

  • минуты - число от 0 до 59
  • часы - число от 0 до 23
  • день месяца - число от 1 до 31
  • номер месяца в году - число от 1 до 12
  • день недели - число от 0 до 7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)

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

Символ «*» означает «все возможные значения». Звездочка «*» в поле «часы» будет означать «запускать каждый час». Символ «/» служит для указания дополнительной периодичности задания. Например, «*/3» в поле «часы» означает каждые три часа. Если определены поля «день месяца» и «день недели» (не равны *), то такое задание будет выполняться в каждый указанный день недели независимо от дня месяца.

13 13 10 * 5 /home/u12345/script.pl

такая команда будет выполняться в 13 часов 13 минут каждую пятницу и каждое 10 число месяца, даже если 10 число не совпадет с пятницей.

Cron позволяет запускать сценарии при загрузке системы - укажите @reboot в начале сценария вместо периодичности запуска:

@reboot /home/u12345/script.pl

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

0 */3 * * 2,5 /home/u12345/script.pl

Скрипт /home/u12345/script.pl будет автоматически запускаться каждые три часа во вторник и в пятницу. Введите такой сценарий в редакторе vi, выйдите с сохранением результатов редактирования. Задание будет выполнятся с указанной периодичностью, если вы не допустили ошибок.

Cron сообщает об ошибках в сценарии:

/tmp/crontab.xxxxxxx: 1 строка, 9 символов crontab: installing new crontab "/tmp/crontab.xxxxxxx":1: bad minute crontab: errors in crontab file, can"t install Do you want to retry the same edit?

Посмотреть список уже установленных в cron сценариев можно командой crontab -l:

Bash-2.05b$ crontab -l 0 */3 * * 2,5 /home/u12345/script.pl

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

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

  • выполнять задание раз в час в 0 минут - 0 */1 * * * /home/u12345/script.pl
  • выполнять задание каждые три часа в 0 минут - 0 */3 * * * /home/u12345/script.pl
  • выполнять задание по понедельникам в 1 час 15 минут ночи - 15 1 * * 1 /home/u12345/script.pl
  • выполнять задание 5 апреля в 0 часов 1 минуту каждый год - 1 0 5 4 * /home/u12345/script.pl
  • выполнять задание ежемесячно 1 числа в 6 часов 10 минут - 10 6 1 * * /home/u12345/script.pl

Как запустить PHP-скрипт по расписанию

Запускайте скрипты на языке PHP в указанное время с желаемой периодичностью с помощью PHP-CLI интерпретатора.Так может выглядеть команда на запуск скрипта script.php - /usr/bin/php -q $HOME/script.php> /dev/null 2>&1

Поскольку не все PHP-программы могут работать через CLI SAPI без предварительной модификации, можно запускать их через wget:

/usr/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Указывайте путь до утилит полностью, от корня файловой системы. Если в скрипте используются функции require, include, в которых указаны относительные пути - в начале выполняемого скрипта используйте вызов функции chdir(), которая задаст текущую рабочую директорию. Или воспользуйтесь встроенной командой cd.

@reboot cd /home/u12345 && ./script.pl

Как получить сообщения об ошибках от программ, запускаемых cron

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

MAILTO=адрес@домен.ru , где «адрес@домен.ru» - это адрес электронной почты, куда придут уведомления. Чтобы указать несколько адресов, введите их через запятую.

Вы будете получать письмо с тем, что выводят скрипты каждый раз, когда cron запускает задачу. Если вы напишете скрипт, который будет печатать строчку «Hello, world» и поставите его на выполнение через cron - вы будете получать письмо со строкой «Hello, world» каждый раз, когда cron запустит такой скрипт.

Если текст, выводимый скриптом, вам не нужен - добавьте в конец строки-сценария для cron символы > /dev/null 2>&1

Полностью строка для cron будет выглядеть так:

0 1 * * * /usr/bin/php -q $HOME/script.php > /dev/null 2>&1

Проверьте корректность синтаксиса скриптов, которые вы устанавливаете на выполнение через cron. Скрипты могут содержать ошибку и работать неодинаково при запуске через веб-сервер и через cron, и так далее. Перед запуском проверьте скрипт командой в unix shell:

/usr/bin/php -l script.php

Если ошибок в скрипте нет, вы увидите сообщение «No syntax errors detected in script.php».

Как запустить сценарий от имени пользователя

Для повышения безопасности системы скрипт запускают от имени определённого пользователя. Убедитесь, что у пользователя есть права на запуск скрипта. Укажите перед основной частью скрипта su -l имя_пользователя , от которого хотите запустить скрипт.

Например, для запуска сервера TeamSpeak3 от имени пользователя ts3server используется следующая команда:

Su -l ts3server ./ts3server_startscript.sh start

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

Ограничения

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

Недавно мне пришлось настраивать запланированную задачу на сервере, и в первый раз это трудно, и даже страшновато. Поэтому я решила написать статью об этапах настройки Cron . Мы создадим простой PHP-скрипт для отправки электронной почты один раз в день.

Необходимый базовый уровень

  • Базовый опыт работы с командной строкой;
  • Навыки работы с SSH на сервере Linux .

Задачи

  • Научиться настраивать простую запланированную задачу (задание cron ) в среде Linux-сервера ;
  • Установить задачу cron для отправки электронной почты ежедневно в указанное время.

Отправка электронной почты с помощью PHP

Сначала нужно создать простой PHP-скрипт для тестирования Cron Linux настройки. Я собираюсь создать файл, который отправляет электронную почту:

Если вы не знакомы с PHP-функцией mail() ознакомьтесь с официальной документацией . Я устанавливаю переменные, задающие получателя, электронный адрес отправителя, тему, содержание письма и заголовки. Это не самый современный или безопасный способ отправки электронной почты. Но это работает, поэтому я собираюсь использовать его для тестирования. Сохраняем код в файле cron.php .

Путь к публичной папке будет зависеть от дистрибутива Linux , но я поместила файл cron.php в /var/www/html/crontest . Поэтому полный путь к моему скрипту будет следующим: /var/www/html/crontest/cron.php . Вы можете протестировать этот скрипт непосредственно в браузере. Если адрес вашего сайта example.com , скорее всего, адрес файла будет example.com/crontest/cron.php . Если вы запускаете файл и получаете электронное письмо, значит, скрипт работает.

Localhost не настроен для отправки PHP-почты , поэтому этот скрипт должен запускаться из среды Linux .

Основной синтаксис Cron

Есть полезный сайт под названием Crontab Generator , который может настроить Cron PHP , но сначала мы кратко рассмотрим основной синтаксис.

Пример работы Cron :

* * * * * /usr/bin/php /var/www/html/crontest/cron.php > /dev/null 2>&1

Части команды cron

Команда cron состоит из четырех основных частей:

Время выполнения Выполнение PHP Путь к скрипту Результат * * * * * /usr/bin/php /var/www/html/crontest/cron.php > /dev/null 2>&1

Время выполнения — устанавливает минуты, часы, дни, месяцы и день недели.

Выполнение — задача cron должна вызвать PHP , который находится в папке /usr / bin / php .

Путь к скрипту — полный путь к файлу, который необходимо запустить.

Результат (необязательно ) — можно записать результат в файл или отбросить эту часть > /dev/null 2>&1 .

В приведенном выше примере задача Cron Linux настроена на отправку электронной почты каждую минуту часа ежедневно. Звездочка — это подстановочный знак, обозначающий «все ».

  • Минуты — установите минуты, от 0 до 59;
  • Часы — установите часы, от 0 до 24;
  • Дни — установите день, от 1 до 31;
  • Месяцы — установите месяц, от 1 до 12 (январь-декабрь );
  • Неделя — установите день недели, от 0 до 6 (воскресенье — суббота ).

Вот несколько простых примеров:

Синтаксис Пояснение 0 * * * * запускается один раз в час (каждую нулевую минуту каждого часа). 0 0 * * * запускается один раз в день (в полночь каждого дня в нулевую минуту). 0 0 1 * * запускается один раз в месяц (в первый день каждого месяца в полночь в нулевую минуту). 0 0 1 1 * запускается один раз в год (в первый день первого месяца в полночь в нулевую минуту).

Существуют и другие настройки, например, для нечетных / четных дней, каждые 5 минут и т. д. Также доступно множество ресурсов, на которых можно найти конкретные настройки.

Настройка задачи Cron

Если cron настроен под учетной записью root , тогда нужно запустить sudo перед запуском кода.

Команда cron называется crontab . Мы задаем для нашей задачи выполнение рассылки электронной почты один раз в день, так что полная команда будет такой:

0 0 * * * /usr/bin/php /var/www/html/crontest/cron.php >/dev/null 2>&1

После того, как вы зашли на сервер SSH , можно проверить, существуют ли другие текущие задачи. Это можно сделать с помощью следующей команды.

crontab -l crontab: no crontab for user

Теперь мы отредактируем crontab :

На этот момент вы, скорее всего, будете работать в редакторе vi , если вы никогда не меняли редактор своего сервера по умолчанию. В первый раз при настройке Cron это может немного сбивать с толку.

Вот что нужно сделать:

  1. Нажмите esc ;
  2. Нажмите i , чтобы начать редактирование файла;
  3. Вставьте команду cron в файл;
  4. Снова нажмите esc , чтобы выйти из режима редактирования;
  5. Введите :wq , чтобы сохранить изменения в файле (w — write ) и выйти (q — quit ).

Теперь crontab сохранен, и электронное письмо должно отправляться один раз в день в полночь. Вы можете установить * / 5 * * * * — каждые 5 минут, чтобы проверить его работу.

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

Перевод статьи «Setting Up a Basic Cron Job in Linux » дружной командой проекта

В системе Linux автоматический запуск заданий выполняется демоном crond , а составлять расписания для автоматического запуска заданий могут не только администратор системы, но и пользователи.

Как работает crond

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

Составление расписания заданий

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

Формат записей файла crontab

Часть time-date (время-дата) состоит из пяти числовых полей, разделенных пробелами и определяющих время запуска задания:

Для удобства заполнения указанных полей введены следующие правила:

  • Можно указывать значения в виде численных интервалов. К примеру, интервал 1-3 в поле часов означает 1.00, 2.00 и 3.00 пополуночи, 2-4 в поле дня недели - вторник, среду или четверг.
  • Интервалы можно задавать с шагом больше единицы. Например, чтобы указать каждый второй час, начиная с полуночи, следует установить интервал 0-23 с шагом 2 через косую черту: 0-23/2
  • Звездочка (*) указывает полный интервал значений поля - от минимального до максимального. Например, в поле дня месяца звездочка означает интервал 0-31, в поле дня недели - 0-7
  • День недели или месяц можно указать первыми тремя буквами его (английского) названия

Примеры времени-даты

Несколько примеров заполнения полей времени-даты:

0 1 * * * Запуск задания ежедневно в 1.00 пополуночи 30 14 * * 0 Запуск задания по воскресеньям в 2.30 пополудни 0 23-7/2,8 * * * Запуск задания каждые 2 часа с 23.00 до 7.00 и в 8.00 0 12 * 1 mоn Запуск задания в полдень каждого понедельника января каждого года 0 12 2 feb * Запуск задания в полдень второго февраля каждого года

Поле command

Поле command (команда) отделено от полей времени-даты одним или несколькими пробелами и простирается до конца строки. Команды обрабатываются оболочкой /bin/sh .

Например, следующая запись в файле crontab предусматривает ежедневный запуск программы /usr/sbin/backup в 1.00 пополуночи:

0 1 * * * /usr/sbin/backup

Некоторым командам (например, mail) требуется ввод информации с устройства стандартного ввода. Это указывается при помощи знака процента (%). Первый такой знак обозначает начало стандартного ввода, каждый последующий - смену строки.

Редактирование файла crontab

Файл crontab редактируется командой crontab -e . Возможны два подхода:

  • создание нового файла со всеми записями, которые должны входить в файл crontab , с последующей его записью на диск под этим именем по команде crontab ;
  • непосредственное редактирование файла по команде crontab -e .

Запись из файла

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

0 1 * * * /usr/sbin/backup

Созданному файлу следует присвоить подходящее имя, например сron jobs . После того, как указанный файл создан, его содержимое необходимо записать в файл crontab командой:

~$ crontab cronjobs

Содержимое файла cronjobs полностью заменит содержимое файла crontab данного пользователя. Используя этот метод, любой пользователь может редактировать свой файл crontab . Суперпользователь обладает особым правом редактировать файлы crontab остальных пользователей. Редактирование чужого файла указывается флажком -u . Например, по команде:

~# crontab -u oleg cronjobs

файл cronjobs записывается как файл crontab пользователя oleg .

Непосредственное редактирование файла crontab

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

По умолчанию по команде crontab с опцией -е файл crontab загружается в редактор . Редактор Vi - мощный, хотя и сложный инструмент, популярный среди опытных пользователей Unix . Тот, кто предпочитает другой редактор, например Xedit , может установить соответствующее значение переменной среды EDITOR:

~$ export EDITOR=xedit

После этого ввод команды

приводит к открытию файла crontab в указанном редакторе.

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

~# crontab -u user-name -e

Просмотр файла crontab

Для просмотра содержимого файла crontab вводится команда:

Суперпользователь может просматривать файлы crontab остальных пользователей:

~# crontab -u username -l

Удаление файла crontab

Для удаления содержимого своего файла crontab пользователь вводит команду:

Суперпользователь может удалять файлы crontab остальных пользователей.

MIN HOUR DOM MON DOW CMD

Таблица: Поля и допустимые диапазоны Crontab (синтаксис Linux Crontab)

1. Планирование задач в течение определённого времени

Основа использования cron – выполнение задач в определённое время, как показано ниже. Это будет выполнять скрипт полного резервного копирования (full-backup) 10 июня в 8.30.

Пожалуйста, обратите внимание, что поле времени использует 24-часовой формат, Так что 8 АМ – 8, 8 РМ – 20 часов.

30 08 10 06 * /home/developer/full-backup

  • 30 – 30-ая минута
  • 08 – 08 АМ
  • 10 – 10-й день
  • * – каждый день недели

2. Расписание задач для более частого выполнения (например, дважды в день)

Следующий скрипт использует дополнительное резервное копирование дважды в день каждый день. В этом примере выполняется дополнительное резервное копирование (incremental-backup) в 11:00 и в 16:00 каждый день. Значения через запятую в поле указывают, что команда должна быть выполнена в каждое указанное время.

00 11,16 * * * /home/developer/bin/incremental-backup

00 – 0-ая минута (начало часа) 11, 16 – 11 и 16 часов * - каждый день * - каждый месяц * - каждый день недели

3. Расписание работы в течение определённого интервала времени (например, только в будние дни)

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

Подпрограмма Cron для каждого дня в течение рабочих часов

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

00 09-18 * * * /home/developer/bin/check-db-status

00 - 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * - каждый день * - каждый месяц * - каждый день недели

Подпрограмма Cron для каждого рабочего дня в течение рабочих часов

Этот пример проверяет состояние базы данных каждый рабочий день (кроме субботы и воскресенья) с 9 утра до 6 вечера.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * - каждый день * - каждый месяц 1-5 - Понедельник, Вторник, Среда, Четверг и Пятница (каждую неделю)

4. Как просмотреть записи Crontab?

Просмотр текущих Crontab-файлов пользователя.

Чтобы просмотреть ваши файлы crontab-l из вышей учётной записи unix, проделайте следующее.

Developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Просмотр root записей crontab

Залогиньтесь в качестве root пользователя (su - root) и выполните crontab-l как показано ниже.

Root@dev-db# crontab -l no crontab for root

Чтобы посмотреть файлы других пользователей, залогиньтесь в качестве root пользователя и и используйте -u {имя пользователя} -l как показано ниже.

Root@dev-db# crontab -u username -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Как редактировать записи crontab?

Редактирование текущих пользовательских cron-записей.

Чтобы редактировать записи, используйте cronab -e как показано ниже. По умолчанию, будут редактироваться текущие записи crontab пользователя.

Developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

Когда вы сохраните файл, он сохранит crontab и покажет следующее сообщение, где будет сказано, что crontab успешно изменён.

~ "crontab.XXXXyjWkHw" 2L, 83C written crontab: installing new crontab

Редактирование root записей crontab

Залогиньтесь как root пользователь (su - root) и сделайте crontab -e , как показано ниже.

Root@dev-db# crontab -e

Редактирование записей crontab-файла другого пользователя

Чтобы отредактировать запись crontab другого пользователя Linux, залогиньтесь в под root и используйте -u {имя пользователя} –е, как показано ниже.

Root@dev-db# crontab -u username -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Выполнение Cron каждую минуту

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

Bash * * * * * CMD

* - означает возможную единицу – то есть, каждую минуту каждого часа в течение года. Кроме того, использование * напрямую, окажется более полезной функцией в следующих примерах.

Указание */5 в поле минут означает каждые 5 минут. Указание 0-10/2 в поле минут означает каждые 2 минуты в первых 10 минутах. Таким образом, данная условность может быть использована во всех 4 полях.

7. Запуск фоновых задач Cron каждые 10 минут

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

*/10 * * * * /home/ramesh/check-disk-space

Эта задача выполняет указанную команду проверки диска каждые 10 минут на протяжении года. Но вам может потребоваться выполнение проверки только в рабочие часы или наоборот. Приведённые выше примеры показывают, как это сделать.

Вместо указания значений в 5 полях мы можем указать их, используя ключевое слово, как показано ниже.

Существуют особые условия, когда вместо 5 полей вы можете использовать @ и далее ключевое слово – такие как перезагрузка, полночь, ежегодно, ежечасно.

Специальные ключевые слова Cron и их значение

8. Расписание работы для первой минуты каждого года с использованием @yearly

Если вы хотите, чтобы cron задача выполнялись в первые минуты каждого года, то можете использовать ключевое слово @yearly , как это показано ниже. В стаком случае система будет выполнять ежегодное техническое обслуживание, используя скрипт ежегодного тех.обслуживания в 00:00 1 января каждого года.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Запуск задач каждый месяц с использованием ключевого слова @monthly

Оно схоже со словом @yearly , приведённым выше. Но команда выполняется ежемесячно. Команда будет выполнять резервное копирование в 00:00 первого числа каждого месяца.

@monthly /home/ramesh/suse/bin/tape-backup

10. Запуск задач каждый день с использованием @daily

Используя ключевое слово @daily , будет ежедневно создаваться лог-файл очистки журнала в 00:00 каждый день.

@daily /home/developer/arch-linux/bin/cleanup-logs "day started"

11. Как выполнить команду Linux после каждой перезагрузки, используя @reboot?

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

@reboot CMD

13. 12. Как отключить/перенаправить исходящую почту Crontab, используя ключевое слово MAIL?

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

Developer@dev-db$ crontab -l MAIL="developer" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

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

13. Как выполнять задачи Linux Cron кажду секунду, используя Crontab

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

14. Указание переменной PATH в Crontab

Во всех вышеприведённых примерах мы указывали абсолютный путь команды Linux или скрипта оболочки, которые должны быть выполнены.

Например, вместо указания /home/developer/tape-backup , если вы хотите указать только tape-backup , добавьте путь /home/developer к переменной PATH в crontab , как показано ниже.

Developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yearly annual-maintenance */10 * * * * check-disk-space

15. Установка Crontab из Cron-файла

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

Примечание: Будет создан файл cron-file.txt в вашем crontab, который удалит прежние записи cron. Поэтому, пожалуйста, будьте внимательны при загрузке записей cron из cron-file.txt:

developer@dev-db$ crontab -l no crontab for developer $ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space developer@dev-db$ crontab cron-file.txt developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: