Я запускаю команду в SSH, которую я установил в цикле, используя watch
или while
.
Код:
while sleep SECONDS; do command; done
или
watch -n SECONDS command
Пример:
while sleep 5; do ls; done
В этом примере это будет означать, что он будет запускаться ls
каждые 5 секунд до тех пор, пока он не будет завершен нажатием комбинации клавиш CTRL + C илитерминал закрыт.
В моем случае использования я использую другую команду (которая не имеет никакого вывода ssh), но результаты остаются теми же.
Обе эти команды будутничего не отображается (в случае, если команда не вызывает вывод в отличие от ls
), но команда действительно выполняется каждые x
секунд.
Дело в том, что я хочу просмотреть выводпри каждом выполнении.
Например,
root@server:~ # while sleep 5; do <command>; done
.. executed at 00:00:05
.. executed at 00:00:10
.. executed at 00:00:15
.. executed at 00:00:20
.. executed at 00:00:25
.. executed at 00:00:30
и т. д. и т. п. каждые x
секунд после выполнения команды до ее остановки.
В идеалеЯ хотел бы напечатать текст, как указано выше, включая текущее время.
Я могу 'просто добавьте в него printf
, потому что я пытался это сделать.
# this doesn't work
while sleep 5; do <command> printf "..."; done
, где ...
- вывод, который я хочу сказать при каждом выполнении.Проблема - да, это печатает, но это портит мою команду.Я пробовал printf и до команды, но затем команда не выполняется.
Как я могу получить ее, чтобы получить желаемый вывод, чтобы я не просто видел пустую страницу?За 5 секунд это легко посчитать.Но когда я добираюсь до более высоких времен, как каждые 120 секунд, гораздо сложнее отследить, когда он выполняется.Вывод со временем выполнения каждого цикла был бы чрезвычайно полезен.
Кстати, я на CentOS 6.