5

Я пытаюсь сделать интервальную съемку с помощью своей веб-камеры. Я хочу запустить сценарий в полночь 1 января, затем 00:15 2 января, 00:30, 3 января и так далее. Это может продолжаться вечно, я выключу его, когда закончу.

Я не могу сделать это с Cron, могу ли я, не заполняя crontab каждой возможной комбинацией? Я не знаю, что еще делать, хотя.

3 ответа3

7

Вместо создания нового задания cron в вашем скрипте и необходимости каждый раз удалять "старое" задание cron, вместо этого следует использовать команду at . Команда at была создана именно для этого, чтобы позволить команде запускаться один раз в определенную дату / время. Таким образом, вам не придется удалять старую работу cron.

Итак, у вас может быть свой скрипт, давайте назовем его «capture_from_webcam.sh», который выглядит так:

#!/bin/bash

#schedule next capture for tomorrow + 15 minutes
echo "/path/to/capture_from_webcam.sh" | at tomorrow + 15 minutes

# capture from webcam
/path/to/capture_from_webcam.sh

И иметь, если выполнить в первый раз, в полночь 1 января:

echo "/path/to/capture_from_webcam.sh" | at 00:00 01/01/2010

Для получения дополнительной информации см. Справочную страницу.

3

Вы можете создать задание cron как часть сценария, который вы планируете запустить. Итак, запустите задание cron один раз, затем скрипт bash создаст следующий через 15 минут и так далее.

Вот предыдущий вопрос, который может помочь: Как создать работу cron, используя bash

1

Вы можете сделать это через cron.

Вы вызываете один и тот же сценарий cron каждый день в одно и то же время, но вы добавляете оператор sleep в начало сценария, который спит для 15m * date +'%j' , в этот день года, [001 ... 366].

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .