Похоже, что Cron не поддерживает секундный интервал. Как проще всего запускать скрипт cli (php) каждые 15 секунд? Есть ли инструмент cron, который работает именно с секундами (тогда я мог бы использовать Cron для вызова его каждую минуту)?
Я думаю, вам нужно написать сценарий оболочки, который вызывает вашу команду, а затем "спит" 15 секунд - я не верю, что большинство реализаций cron допускают детализацию более одной минуты.
Насколько я знал, Крон требует присутствия секундантов.
«0/15 * * * * *»
сек мин. час день-месяц месяц день-неделя (необязательный год, который я пропустил)
РЕДАКТИРОВАТЬ: Похоже, что хотя для выражения CRON требуется 6 или 7, запускающий его cron exec хочет 5 ... Я изучу это!
Это действительно вопрос программирования, и поэтому он был задан на правильном сайте.
Поскольку сам cron не может делать то, что вам нужно, это вопрос создания вашей собственной процедуры. Использование режима сна, как предлагают другие, не даст правильных результатов, поскольку не учитывает время, необходимое для выполнения команды. Тем не менее, это простой вопрос: считать системные часы на любом удобном вам языке и запускать команду каждые 15 секунд в зависимости от времени, а не задержки по времени.
Если у вас есть рутина, не запускайте ее через cron каждую минуту. Просто запускайте его как фоновую задачу непрерывно.
*/1 * * * * /path/to/script
*/1 * * * * sleep 15; /path/to/script
*/1 * * * * sleep 30; /path/to/script
*/1 * * * * sleep 45; /path/to/script
Вам нужно написать сценарий оболочки, подобный этому, который спит с указанным интервалом, и запланировать его запуск каждую минуту в cron:
#!/bin/sh
# Script: delay_cmd
sleep $1
shift
$*
Затем запланируйте его запуск в cron с вашими параметрами: delay_cmd 15 параметров mycommand
0/15 * * * *?
Формат Cron 0/15 * * * *? Время начала Среда, 9 ноября 2016 г. 8:36 Следующие запланированные даты (запускается каждые 15 секунд)