关于 Linux 脚本的问题

关于 Linux 脚本的问题

我在 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用您的自定义命令替换来检索服务器列表。

相关内容