Как запустить периодическое запланированное задание без at или cron

374
runlevel0

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

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

0
обычно пользователь всегда имеет доступ к кукурузе - свой собственный cron, но явно не root Drako 6 лет назад 0
и еще вопрос - почему пользователь забрал у пользователя cron доступ? отдай это обратно. Drako 6 лет назад 0
а также - если его rsync - тогда rsync может быть настроен как deamon Drako 6 лет назад 0

1 ответ на вопрос

1
runlevel0

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

Откройте сеанс экрана и создайте цикл 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 

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

интересное решение хотя: D Drako 6 лет назад 0

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