Как запустить периодическое запланированное задание без at или cron
Сценарий: у вас есть пользователь без доступа к cron, и вам нужно запланировать работу (скажем, rsync каталога). Использование at
это не вариант, так как у вас нет фиксированной даты окончания.
Могу поспорить, что есть тысячи способов сделать это, вот мой:
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
Последнее в значительной степени бесполезно, но, как вы знаете;)