Разберемся немного как добавить выполнение какого либо скрипта в планировщик заданий cron в ОС Linux Добавить задание на выполнение в определенное время можно используя программу crontab. Каждый пользователь системы имееет свой собственный файл, в котором прописаны все задания от данного пользователя (/var/spool/cron/). Просмотреть задания, которые уже добавлены в Ваш cron файл (в cron файл Вашего пользователя) можно через команду:
crontab -l
Конечно же, что Ваш cron файл может быть пустым пока-что. Что бы добавить новое задание используем команду:
crontab -e
Эта команда открывает cron файл Вашего пользователя через редактор, который используется по умолчанию в системе. Далее добавляем команду, которую надо запустить в определенное время, в следующем формате и сохраняем файл:
* * * * * /usr/bin/php /home/user/script.php
Распишем подробней что же означают звездочки:
(цифры – это номера звездочек)
1. Минуты (0 – 59)
2. Часы (0 – 23)
3. День месяца (0 – 31)
4. Месяц (1 -12)
5. День недели (0 – 6, 0 – воскресенье)
Вот с помощью этих звездочек мы указываем когда запускать команду (или как часто запускать). Например если вместо номера месяца стоит звездочка, значит команда будет запускаться каждый месяц. Если поставить звездочку на место минут, это будет означать каждую минуту и аналогично для остальных.
Например, нам надо, что бы shell скрипт запускался каждый день в 12.00 и 24.00, тогда запись в крон файл требуется добавить следующую:
0 0,12 * * * /path/to/shell-script.sh
значит
0 – это минуты
0,12 – мы точно указываем часы, в которые надо запускать
* * * – означает что запускать надо каждый день, каждый месяц, каждую неделю.
А вот если нам надо запускать скрипт каждый два часа, тогда можно воспользоваться двумя вариантами:
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /path/to/shell-script.sh
Но программа crontab разрешает нам поступить проще, а результат один и тот же:
0 */2 * * * /path/to/shell-script.sh
*/2 – запись указывает что скрипт будет запускаться каждые два часа.
На счет пути к скрипту: если в скрипте указан обработчик (для shell например это строка в начале файла #!/bin/shell или #!/bin/bash) тогда просто пишем путь к скрипту в крон файл, как показано выше; если же обработчик не указан в скрипте, то срока выглядела бы следующим образом:
0 */2 * * * /bin/shell /path/to/shell-script.sh
А для скрипта юзера значит будет /home/username/skript.php ?
Смотрите статью, там был указан пример для пхп скрипта 😉
* * * * * /usr/bin/php /home/user/script.php
то есть сначала путь до интерпретатора а затем до скрипта?
ну да, пишем команду, которую мы смогли бы выполнить с консоли. А с консоли пхп скрипт можешь запустить только через пхп обработчик.
Подскажите, как будет выглядет команда для вывода содержимого файла ххх? Допустим, как выполнить однократно команду cat /home/sasha/xxx через crontab?
0 * * * * cat /home/sasha/xxx
Каждый час в 0 минут
“День месяца (0 — 31)” исправьте на правильное значение пожалуйста
а как отключить crontab, который написана для cakephp?
Уточните что именно не так пожалуйста ?
Вот из документации:
#man 5 crontab
field allowed values
—– ————–
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
Aram, вопрос не коректен. По настройкам cakephp обращайтесь к разработчикам , а по тому как убрать записи крон из crontab – под своим пользователем просмотреть текущие записи через ssh:
crontab -l
редактировать записи:
crontab -e
Дякую за вашу публікацію. Це дуже корисно. Чи можу я поділитися цим?
дуже радий якщо стаття допомогла. Не зовсім розумію що означає поділитись, якщо Ви маєте на увазі скопіювати статтю – то не забудьте вказати посилання на оригінал.