我正在运行一个定制的Linux机器,所以并不是所有的Linux命令都可用。
我执行与网络相关的命令,所以我需要在运行命令之前设置一个默认网关,然后立即删除该网关。
为此,我在一行中运行所有命令:
/sbin/route add default gw 10.10.10.10;my command;/sbin/route del default gw 10.10.10.10;问题是,由于某种原因,我曾经在同一台机器上发现了两个默认网关,这导致了所有命令的失败,因为即使在运行测试之前设置了默认网关,它仍然会出错,无法运行我的测试。
那么,是否有一种方法可以删除一个命令中的所有默认网关?我有大量的机器在增加,在每台机器上植入一个脚本是不实际的。我需要一个命令,如下所示:
/sbin/route del all default;set my default gw;mycommand;/sbin/route del all default;到目前为止,我发现的只是一个删除默认网关的命令,但并不是所有的命令都是/sbin/route del default,这对我来说是行不通的。
/sbin/route帮助显示以下内容
/sbin/route --help
Usage: route [{add|del|delete}]
Edit the kernel's routing tables
Options:
-n Don't resolve names
-e Display other/more information
-A inet Select address family发布于 2013-02-04 14:36:26
所有的答案都很好,但我用不同的方法解决了这个问题,我只使用命令添加一个默认网关,但是如果已经有一个默认网关,则失败。从而最终在命令的末尾移除错误的网关。这应该是第二次在安沙拉工作。
ip route add default via my-gateway
ip route del default发布于 2012-12-20 19:45:14
如果使用ip而不是route,只需运行:
ip route del 0/0我相信这能捕捉到所有的默认路线。
发布于 2016-02-23 13:29:32
使用ip删除所有默认网关
ip route flush 0/0https://unix.stackexchange.com/questions/59033
复制相似问题