хрон хронометража

8

Я хотел бы начать работу cron в 9:30, затем каждые 5 минут, а затем останавливаться в 16:30 каждый день. Возможно ли такое планирование в одном или мне нужно два задания cron?

Mustafa
источник

Ответы:

10

Я думаю что-то вроде:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

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

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
webtoe
источник
2
Я был удивлен, увидев, что используется «30/5», поэтому я посмотрел на исходный код cron, в частности entry.c, который анализирует каждую строку crontab. в функции get_range () она проверяет, является ли символ после первого числа (в данном примере 30) символом «-» или нет. если это не так, символ «/» никогда не виден. это ошибка; он должен был напечатать предупреждение (или сообщение об ошибке) в форме: «/» имеет смысл только после диапазона * или нм ». извините, ребята!
Пол Викси
7

вам понадобятся три записи в crontab:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

пожалуйста, не обвиняйте linux, или bsd, или меня, в причудливом и бесполезном синтаксисе записей в crontab. это было изобретено в лаборатории AT & T Bell Labs, а затем стандартизировано как часть POSIX.

Пол Викси
источник
4

Я думаю, что вам нужно три работы:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
Свен
источник