2011-02-04 2 views
1

У меня есть этот кодBASH убить Wget, если нет ответа

...
SERVERCONNECTION=$(wget --quiet -O - http://xx:[email protected]:10001/server | grep connections | awk '{print $36}')

Иногда URL получить inresponsive, то я хочу, чтобы убить Wget процесс и установить переменную SERVERCONNECTIION 0.

+1

погуглить для 'Баш alarm', кажется, придумать несколько полезных ссылок, например. http://www.cyberciti.biz/faq/shell-scripting-run-command-under-alarmclock/ –

ответ

5

Установить таймаут процесс Wget с --timeout=seconds, т.е.

SERVERCONNECTION=$(wget --timeout=5 --quiet -O - http://xx:[email protected]:10001/server | grep connections | awk '{print $36}') 
+0

Это должно сработать. Какая именно ошибка? – vtorhonen

+0

Типо, спасибо вам большое. – Adrian

+0

Добро пожаловать. – vtorhonen

3

Другой бесполезно использовать в Grep.

Используйте awk '/connections/ {print $36}' вместо этого, так что вся линия читает

wget --timeout=5 --quiet -O - http://xx:[email protected]:10001/server | awk '/connections/ {print $36}' 
+0

Хотя ваш комментарий о 'grep' является истинным, он скорее маскирует тот факт, что вы также ответили на вопрос. Возможно, вы могли бы отредактировать свой пост, чтобы сначала дать ответ, а затем отметить о 'grep'? – Chowlett

Смежные вопросы