Запустите скрипт Linux во время 'n' в первый день, 'n+15 минуты на следующий день, и так далее

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

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

5
задан 16.12.2009, 22:40

3 ответа

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

Так, у Вас мог быть свой сценарий, позволяет, называют это "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-й раз, в полночь 1-го января:

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

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

7
ответ дан 07.12.2019, 17:03

Можно создать задание крона как часть сценария, Вы - планирование выполнения. Поэтому имейте прогон задания крона однажды, затем сценарий удара создает следующий 15 минут спустя и так далее.

Вот предыдущий вопрос, который может помочь: Как создать задание крона с помощью удара

3
ответ дан 07.12.2019, 17:03

Можно сделать это через крон.

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

1
ответ дан 07.12.2019, 17:03

Теги

Похожие вопросы