利用 graphviz 创建网络天气图配置
Leveraging graphviz to create a network weathermap configuration
给定一个生成的节点和链接列表,有没有一种方法可以使用点或 graphviz 包中的其他工具为这些节点创建坐标,这样我就可以使用该信息生成配置文件网络天气图?
答案很简单,调用 dot 或其他没有输出参数的工具打印我想要输出的信息。
我写了这个 shell 脚本来从 mrtg 配置文件制作图表,但由于结果太杂乱,我决定不追求天气图部分;
grep -P '^SetEnv.*MRTG_INT_IP="..*" MRTG_INT_DESCR=".*"' | grep -v 'MRTG_INT_IP="127.' | grep -v 'MRTG_INT_IP="10.255.' |\
sed \
-e 's/SetEnv\[\(.*\.switch\.hapro\.no_.*\)]: MRTG_INT_IP="\(.*\)" MRTG_INT_DESCR="\(.*\)"/ /' \
-e 's/\//_/g' |\
sort -t/ -k 1 -n -k 2 -n -k 3 -n -k 4 |\
gawk '
BEGIN { print "graph '' {"; }
{
graph[overlap=false];
v = "''"
print v " -- "
}
END { print "}" }'
我想我会分享这个以防将来其他人发现它有用。
我使用了类似 ./mkconf ../switch/mrtg.1c.conf 1c | dot -Tpng > test.png
的脚本
给定一个生成的节点和链接列表,有没有一种方法可以使用点或 graphviz 包中的其他工具为这些节点创建坐标,这样我就可以使用该信息生成配置文件网络天气图?
答案很简单,调用 dot 或其他没有输出参数的工具打印我想要输出的信息。
我写了这个 shell 脚本来从 mrtg 配置文件制作图表,但由于结果太杂乱,我决定不追求天气图部分;
grep -P '^SetEnv.*MRTG_INT_IP="..*" MRTG_INT_DESCR=".*"' | grep -v 'MRTG_INT_IP="127.' | grep -v 'MRTG_INT_IP="10.255.' |\
sed \
-e 's/SetEnv\[\(.*\.switch\.hapro\.no_.*\)]: MRTG_INT_IP="\(.*\)" MRTG_INT_DESCR="\(.*\)"/ /' \
-e 's/\//_/g' |\
sort -t/ -k 1 -n -k 2 -n -k 3 -n -k 4 |\
gawk '
BEGIN { print "graph '' {"; }
{
graph[overlap=false];
v = "''"
print v " -- "
}
END { print "}" }'
我想我会分享这个以防将来其他人发现它有用。
我使用了类似 ./mkconf ../switch/mrtg.1c.conf 1c | dot -Tpng > test.png