Iproute

ip route保存二進制還是ascii?

  • October 28, 2017

根據ip-route(8)

ip route save

將路由表資訊保存到標準輸出 此命令的行為類似於 ip route show,不同之處在於輸出是適合傳遞給 ip route restore 的原始數據。

ip route restore

從標準輸入恢復路由表資訊 該命令期望讀取從 ip route save 返回的數據流。它將嘗試完全恢復保存時的路由表資訊,因此必須首先完成流中資訊的任何轉換(例如設備索引)。任何現有路線都保持不變。表中已存在的數據流中指定的任何路由都將被忽略。

但是當我使用時ip route save > mydump,它返回的二進製文件與手冊頁不同,這是一個錯誤嗎?還是我用錯了?

如果你想轉儲你的 RT,請考慮,ip route save提供標準輸出和標準錯誤,所以你必須使用:

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

它是二進制的。一個明確的指標是它不允許您將二進制數據轉儲到標準輸出,並顯示錯誤消息:

# ip route save
Not sending binary stream to stdout
Dump terminated

引用自:https://unix.stackexchange.com/questions/234889