Как начать работу в точное время?

Я хочу начать работу по записи в точное время. Как я понимаю, cron гарантирует только начало работы в течение минуты.

Одним из возможных решений является запуск задания cron раньше и ожидание точного времени. Какие еще возможности у меня есть?

1 ответ

Решение

Самый простой способ - запустить cron и запустить его на минуту раньше, а затем добавить время самостоятельно.

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

date > ~/at_test

Если вы идете по маршруту cron, date +%s твой друг.

Например

#!/bin/bash
target_time=1298301898
let wait_time=target_time-`date +%s`
if [ $wait_time -gt 0 ]; then
 sleep wait_time
fi
# Execute your code

При таком подходе ваша следующая задача - выяснить, как определить target_time. Если вы всегда знаете, что хотите запустить его в следующую минуту, вы можете использовать

sleep 2 # Avoid running on xx:59, if cron starts immediately.
let wait_time=60-`date +%M`
sleep wait_time

ждать, пока минутные изменения.

Другие вопросы по тегам