一位前网络工程师正在使用Xymon进行节点监视。该Shell脚本以前曾用于将主动监视的节点与核心交换机的路由表进行比较,并相应地输出数据以显示任何新网络。
尝试执行shell脚本现在返回错误:
awk: cmd. line:1: warning: escape sequence `\.' treated as plain `.'
以下是应用于shell脚本的命令:
cat /var/lib/rancid/dnow/configs/ushouston-dnw1-cr01 | awk '/display ip routing-table/{flag=1;next}/display vlan all/{flag=0}f$
ROUTELIST=$(grep -E "\.0/2[2,3,4]" /tmp/routes.txt | grep -v 192.168.13.1 | awk '{print $2}' | awk -F. '{print $1"\."$2"\."$3}$
for ROUTE in $ROUTELIST ; do
CHECK=$(grep -w $ROUTE /etc/hosts)
if [ "$CHECK" = "" ] ; then
echo "$ROUTE is not monitored"
fi
done
非常感谢理解错误原因以及需要进行调整的任何帮助或指导。
编辑:我没有提到这是一个Linux系统,内核版本为3.16.0-44-通用。
答案 0 :(得分:0)
警告来自此:
{print $1"\."$2"\."$3}
仅在正则表达式中,无需在普通字符串中转义.
。应该是:
{print $1"."$2"."$3}