我正在运行定制的 Linux 机器,因此并非所有 Linux 命令都可用。
我执行网络相关命令,因此我需要在运行命令之前设置默认网关,然后立即删除该网关。
为此,我在一行中运行所有命令:
/sbin/route add default gw 10.10.10.10;my command;/sbin/route del default gw 10.10.10.10;
Run Code Online (Sandbox Code Playgroud)
问题是,由于某种原因,我曾经在同一台机器上发现了 2 个默认网关,这导致我的所有命令都失败了,因为即使我在运行测试之前设置了默认网关,它仍然很混乱,无法运行我的测试。
那么有没有办法在一个命令中删除所有默认网关?我有大量正在增加的机器,在每台机器上植入脚本是不切实际的。我需要一个简单的命令,如下所示:
/sbin/route del all default;set my default gw;mycommand;/sbin/route del all default;
Run Code Online (Sandbox Code Playgroud)
所有到目前为止,我还发现了一个命令来删除一个默认网关,但并不是所有的人
/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
Run Code Online (Sandbox Code Playgroud)
jsb*_*ngs 19
如果您使用ip而不是route,您可以简单地运行:
ip route del 0/0
Run Code Online (Sandbox Code Playgroud)
我相信这会捕获所有默认路由。
所有的答案都很好,但我使用不同的方法解决了这个问题,我使用该命令只添加了一个默认网关,但如果已经存在则失败。从而最终在命令末尾删除错误的网关。这应该第二次生效 inshallah。
ip route add default via my-gateway
ip route del default
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173844 次 |
| 最近记录: |