1

Я ищу демона, который будет запускать команду раз в неделю. Но я не ищу что-то вроде cron, которое будет запускать команду в определенное время. Поскольку мой ноутбук часто выключается, часто эта команда не запускается, потому что он просто пропускает момент, когда cron запускает эту команду.

Таким образом, я ищу демона, который я могу сказать запускать команду всякий раз, когда она прошла неделю (или любое другое время) с момента запуска этой команды.

Я много раз искал такую утилиту, но не смог ее найти. Так кто-нибудь здесь знает такую утилиту?

1 ответ1

2

Хорошо, поэтому, если вы создали запись cron, подобную этой, для соответствующего пользователя (ваш вопрос не был очень конкретным со спецификацией):

0/5 * * * * /path/to/script

и скрипт выглядит примерно так, и вы делаете chmod +x /path /to /script

#!/bin/bash
set -x
today=$(date -d "today 00:00" "+%s")
if [[ -s ~/cronflag && -f  ~/cronflag ]]; then
  if [[ $(( $today - $(cat  ~/cronflag ) )) -ge 604800 ]]; then
    echo huzzah!
#    /path/to/weekly
    echo $today > ~/cronflag
    exit 0
  fi
else
#  /path/to/weekly
  echo hip-hop huzzah!
  echo $today > ~/cronflag
  exit 0
fi

вы должны быть в состоянии получить желаемый результат, предполагая, что a) вы добавляете то, что хотите делать еженедельно в обоих местах, где вы видите # /path /to /weekly (без #;}) и b) машина обычно получает время безотказной работы из> = 10 минут.

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