Execute ações do iproute2 com base em um critério de correspondência

2

Existe alguma maneira de usar um curinga ou outro critério de correspondência ao usar o iproute2? Eu tenho várias interfaces de túnel que seguem uma convenção de nomenclatura. Algo como ip tunnel del blah - * (que dá o erro: ioctl: No such device ) seria ótimo sem ter que recorrer à criação de scripts personalizados.

    
por 3neat 04.01.2012 / 04:08

1 resposta

1

A sintaxe é bem clara sobre isso pelo que posso dizer:

Usage: ip tunnel { add | change | del | show | prl } [ NAME ]
          [ mode { ipip | gre | sit | isatap } ] [ remote ADDR ] [ local ADDR ]
          [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]
          [ prl-default ADDR ] [ prl-nodefault ADDR ] [ prl-delete ADDR ]
          [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]

Where: NAME := STRING
       ADDR := { IP_ADDRESS | any }
       TOS  := { NUMBER | inherit }
       TTL  := { 1..255 | inherit }
       KEY  := { DOTTED_QUAD | NUMBER }

NAME tem que ser um STRING, por isso não pode ser um padrão de caractere curinga. Eu sei que você esperava evitar isso, mas sua melhor aposta seria escrever um wrapper de shell que faça algo assim:

#! /bin/bash
PATTERN="$1"
for t in $(ip tunnel show | awk -F: '{print $1}' | grep -E "$PATTERN"); do
    ip tunnel del $t
done

Depois, chame seu script assim: deltunnels.sh "^blah-*"

Acho que isso deve funcionar.

    
por 20.02.2012 / 03:10