Сценарий: у вас есть пользователь без доступа к cron, и вам нужно запланировать работу (скажем, rsync каталога). Использование at не вариант, так как у вас нет фиксированной даты окончания.

Могу поспорить, что есть тысячи способов сделать это, вот мой:

1 ответ1

1

Быстро и грязно:

Откройте сеанс экрана и создайте цикл while:

while : ; do
clear 
echo "$(date : Hey, I'm running this nice stuffz)"
time do_stuff
sleep 1d

Ключевым моментом здесь является команда sleep : она принимает гораздо больше, чем просто значение в миллисекундах. Существуют спецификаторы формата для секунды (с), минуты (м), часа (ч) и дня (d). Более того, GNU sleep не только может обрабатывать целые числа как значения, но и фактически может обрабатывать произвольные числа с плавающей запятой (info '(coreutils) sleep invocation'). Это означает, что вы можете написать что-то вроде:

sleep 0.33d  or  sleep 0.5h

Последнее в значительной степени бесполезно, но, как вы знаете;)

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