ip règle: la suppression de toutes les règles de la table
Je suis en train de travailler sur un script bash que l'utilisation de ip rule...
commande pour ajouter et supprimer des règles. Mais j'ai du mal à les enlever. Par exemple ip rule show
de sortie ressemble à ceci:
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
Toutes les info que j'ai est la table id (12322) et j'ai besoin de supprimer toutes les règles de recherche de la table.
J'ai essayé ces commandes: ip rule del table 12322
et ip rule del lookup 12322
, mais les deux commandes retirez toujours la première règle, et non pas à la première règle de recherche 12322, je veux dire la première règle from all lookup local
. Si je lance une de ces commandes 5 fois, je me retrouve avec pas de règles.
Comment puis-je supprimer toutes les règles qui lookup 12322
en une seule commande?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le supprimer à l'aide "de l'0/0 à 0/0" mais qui va supprimer UNE seule règle. Pour les supprimer tous d'utiliser quelque chose comme ceci:
Cela permet de supprimer toutes les règles jusqu'à ce qu'il n'y a pas de plus.
Réalise les travaux suivants?
Simple. Elle fonctionne. Et c'est la méthode "officielle" par Kuznetsov d'origine iproute2 instructions.
Également note de la iproute2 manuel:
Pour supprimer TOUTES les règles, vous pouvez utiliser la syntaxe suivante.
Si vous vous connectez au serveur via SSH, donc va déposer votre connexion et vous lock-out.
Le problème semble être un bug sur iproute: https://groups.google.com/forum/#!msg/linux.debian.des bugs.dist/wPaWWfa3K0Q/lCIOfpxsFgAJ
Je suis maintenant en utilisant quelque chose comme
ip rule show | grep "regex" | xargs -r -L1 ip rule del
qui semble bien fonctionner.