linux - ip 规则 : deleting all rules from table

标签 linux bash routes

我正在编写一个 bash 脚本,该脚本使用 de ip rule... 命令来添加和删除一些规则。但是我在删除它们时遇到问题。例如 ip rule show 输出如下所示:

0:  from all lookup local 
32764:  from all fwmark 0x3022 lookup 12322 
32765:  from 10.10.10.1 lookup 12322 
32766:  from all lookup main 
32767:  from all lookup default

我拥有的所有信息都是表 ID (12322),我需要删除查找该表的所有规则。

我尝试了这些命令:ip rule del table 12322ip rule del lookup 12322,但这两个命令总是删除第一条规则,而不是查找的第一条规则12322,我的意思是第一个规则 from all lookup local。如果我运行这些命令中的任何一个 5 次,我最终将没有任何规则。

如何在一个命令中删除所有lookup 12322的规则?

最佳答案

您可以使用“从 0/0 到 0/0”进行删除,但这只会删除一条规则。要删除它们,请使用如下内容:

while ip rule delete from 0/0 to 0/0 table 12322 2>/dev/null; do true; done

这将删除所有规则,直到不再存在为止。

关于linux - ip 规则 : deleting all rules from table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895098/

相关文章:

如果不使用 minicom 打开一次,则无法从串口读取

javascript - 由于(可能)错误的 bash 脚本导致的一些奇怪的错误

linux - 使用 bash 脚本删除行尾字符?

ruby-on-rails - Rails 3 路由 : add action to all resources in namespace

ruby-on-rails - 在 rails 中重命名路线(map、link_to、to_param)

Linux : I programatically changed my default route to eth0 but now I can't ping, 有什么建议吗?

C++通过类范围访问实例的成员

c - Linux编程。如何使用消息队列发送数组?

PHP 写入文件 - 权限被拒绝

bash - 在密码提示时立即向 SSH 发送关闭信号