From 27b2fd21e3d86990b0119a8c7bbf0bb1916ebd7f Mon Sep 17 00:00:00 2001 From: Jed Reynolds Date: Fri, 27 Sep 2019 17:06:51 -0700 Subject: [PATCH] every_vrf.sh is a script that will execute first command across all subsequenly listed interfaces if they have vrf masters --- every_vrf.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 every_vrf.sh diff --git a/every_vrf.sh b/every_vrf.sh new file mode 100755 index 00000000..2499bde4 --- /dev/null +++ b/every_vrf.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +[[ $# < 2 ]] && { + echo "Usage: $0 'a command' eth1 eth2 sta2 st3" + echo "Runs 'a command' in a vrf environment for all following stations" + exit 1 +} + +[[ -f lib_vrf.bash ]] || { + echo "missing lib_vrf.bash, cannot continue" + exit 1 +} +. lib_vrf.bash + +execthis="$1" +shift + +for eth in "$@"; do + [[ $execthis = $eth ]] && continue + vrf=${IFNAMES[$eth]} + if [[ x$vrf = x ]] || [[ $vrf = unknown ]]; then + echo "Skipping interface $eth" + continue + fi + echo "[$execthis] $vrf" + ip vrf exec $vrf $execthis & +done