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

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

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

5
задан 21 February 2011 в 15:24

1 ответ

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

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

date > ~/at_test

Если вы используете cron route, 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

, чтобы дождаться изменения минут.

0
ответ дан 21 February 2011 в 15:24

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

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