Запускать команду каждую секунду в Bash? - PullRequest
44 голосов
/ 15 февраля 2012

Я хочу написать загрузчик изображений и назначить его на bash.Что у меня есть и что мне нужно:

У меня есть:

  1. Команда, которая отлично работает (что-то вроде wget http://mywebcam.com/image.jpg -O /var/cam/Image.jpg)
  2. Root права

  3. Быстрая интернет-линия между моим сервером и моей веб-камерой

Что мне нужно:

Загрузка изображения с камеры каждую секунду * (сон 1?) * и переписать его локально (моя команда делает это хорошо) Запустите этот скрипт сразу и не беспокойтесь о перезапуске (я думаю, мне нужно создать файл с командами bash и запуститьэто один раз + установить работу crontab "при перезагрузке" для этого файла, верно?)

Может быть, есть кто-то, кто знает, что мне делать?

Ответы [ 2 ]

94 голосов
/ 15 февраля 2012

Если вы хотите запустить команду с интервалом в одну секунду (одна секунда между концом одной команды и началом следующей, что не совпадает с выполнением каждую секунду), просто выполните:

while sleep 1; do cmd; done

Если вы хотите запустить его при перезагрузке, метод будет зависеть от вашей системы.

65 голосов
/ 23 августа 2013

Команда watch сделает это за вас.Это также показывает результат в хорошем смысле.

$ watch -n 1 date

Замените date на вашу команду.Параметр -n указывает интервал в секундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...