Как выполнять скрипт периодически без использования crontab?

Как выполнять скрипт периодически, как crontab, но без использования crontab?

Обратите внимание на то, что исполняемый скрипт не должен запускаться с другим скриптом и назначать ему команду «sleep», что я ожидаю имеют такую ​​же функциональность, как и crontab, но не должны присутствовать в списке crontab и не должны останавливаться при завершении терминала или сессии

crontab точно, но без обхода.

1
задан 2 November 2016 в 15:40

1 ответ

Вы можете запустить скрипт с at и перенести его как свою окончательную инструкцию. Например, как это:

$ cat > $HOME/my.job <<END
do this
do that
cat "$HOME/my.job" | at now + 5 minutes
END
$ sh ~/my.job

Для того, чтобы остановить работу, удалить его из очереди at:

$ atq
5       Wed Nov  2 11:25:00 2016 a zwets
$ atrm 5

Или просто удалить файл my.job, так что следующий выполнение cat "$HOME/my.job" будет ошибкой, поэтому at не будет вызываться, а перепланирование не произойдет.

2
ответ дан 23 May 2018 в 04:36
  • 1
    ... Который фактически эквивалентен сна 5 минут. – Jacob Vlijm 2 November 2016 в 12:30
  • 2
    @JacobVlijm, как это эквивалентно? – zwets 2 November 2016 в 12:33
  • 3
    Мы должны дождаться мнения OP, но я предполагаю, что он буквально не означает «спать», но относится к временному интервалу, установленному из сценария. Возможно, вы правы. – Jacob Vlijm 2 November 2016 в 12:38
  • 4
    @JacobVlijm at не блокирует и не вводит сон, вместо этого он планирует работу в будущем. Это точно так же, как cron, но затем «single-shot». Работа не привязана к терминалу (способ, которым будет выполняться спящий bash скрипт, если вы не отредаете его или нет), так что выйдет из системы и, что еще важнее, переживает перезагрузку. – zwets 2 November 2016 в 13:02
  • 5
    также можно использовать at -f "$HOME/my.job" now + 5 minutes – glenn jackman 2 November 2016 в 14:43

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

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