我在 Linux 中有一个命令,它显示在正常情况下工作的服务器列表(总共 6 个),显示“U”和多个故障/异常情况(即 DN、DJ、UJ、UL 等)。
现在我正在编写一个脚本来监控这一点。到目前为止,我已经完成了以下工作:
*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”的任何内容
谢谢。
答案1
如果我理解正确的话,并使用文件作为命令输出的示例:
文件
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
答案2
要采用更加动态的方法,请尝试以下一行代码:
s=$(get servers | grep -v ^U) || exit 0
$s
如果有的话,这将获取内部的异常服务器,否则退出。
重要的:get servers
用您的自定义命令替换来检索服务器列表。