У меня есть команда в Linux, который отображает список серверов (6 всего), которые работают в нормальном состоянии, показывающем "U" и несколько вниз/ненормальные условия (т.е., DN, ди-джей, UJ, УЛ. и т.д.).
Теперь я соединяю сценарий проводом для контроля этого. До сих пор у меня есть это вниз:
*A=command to get status of servers | grep 'U' | awk '{print $1, $2}'|wc -l
if [ $A -lt 6 ];then
"I need help with this section"
то, что я хочу сделать, если состояние "U" серверов - меньше чем 6 затем, я должен grep вообще быть вместо "U"
Спасибо.
Если я понимаю Вас правильно и использование файла как пример вывода команды:
файл
U Server1 IP address
U Server2 IP address
U Server3 IP address
DN Server4 IP address
U Server5 IP address
U Server6 IP address
Затем:
servers=$(grep "^U" file | wc -l) # you don't need the awk part
[[ -z $servers || $servers -lt 6 ]] && grep -v "^U" file
Вывод:
DN Server4 IP address
Поскольку более динамический подход пробует эту остроту:
s=$(get servers | grep -v ^U) || exit 0
Это получит Вас исключительные серверы внутри $s
если существует кто-либо и выходит иначе.
Важный: замена get servers
с Вашей пользовательской командой для получения списка сервера.