根据ip-route(8)
:
ip Route save
将路由表信息保存到 stdout 该命令的行为类似于 ip Route show,不同之处在于输出是适合传递给 ip Route Restore 的原始数据。
ip Route Restore
从标准输入恢复路由表信息 此命令期望读取从 ip Route Save 返回的数据流。它将尝试将路由表信息完全恢复为保存时的状态,因此必须首先完成流中信息的任何转换(例如设备索引)。任何现有路线均保持不变。表中已存在的数据流中指定的任何路由都将被忽略。
但是当我使用时ip route save > mydump
,它返回二进制,与手册页不同,这是一个错误吗?还是我用错了?
答案1
它是二进制的。一个明确的指标是它不允许您将二进制数据转储到标准输出,并带有错误消息:
# ip route save
Not sending binary stream to stdout
Dump terminated
答案2
如果你想转储你的RT,请考虑ip route save
提供stdout和stderr,所以你必须使用:
ip route save 1> dump
如果不使用1>
ip 命令,请将 stderr 和 stdout 重定向到转储。
注意:如果您的转储中有默认网关,请手动添加其网络,例如:
ip route add 192.168.1.0/24 dev eth0
然后 :
ip route restore < dump
但为什么用手呢?因为转储的第一行是 dafualt gw,并且您会收到以下错误:
RTNETLINK answers: Network is unreachable
答案3
的格式ip route save
是二进制的,但对于 Linux,它与rtnetlink(7)。有很多工具可以读取/写入/操作此文件,其中之一是 Pythonpyroute2。