diff --git a/netconfig.sh b/netconfig.sh index 39844c1..4dd4cd5 100755 --- a/netconfig.sh +++ b/netconfig.sh @@ -278,6 +278,45 @@ while ! $configured && [ $_try_number -lt $max_attempts ] ; do let number_rt_table="$number_rt_table+100" prio=0 + ## - Delete routing table $rt_name if exists, but not matches $number_rt_table + ## - + if $(grep $rt_name /etc/iproute2/rt_tables > /dev/null 2>&1) ; then + + if ! $(grep -E "^$number_rt_table\s+$rt_name" /etc/iproute2/rt_tables > /dev/null 2>&1) ; then + echo "" >> $log_file + echo "## - Delete routing table \"$rt_name\" in file /etc/iproute2/rt_tables" >> $log_file + echo "## -" >> $log_file + echo "sed -i \"/$rt_name/d" /etc/iproute2/rt_tables\" >> $log_file + + sed -i "/$rt_name/d" /etc/iproute2/rt_tables > /dev/null 2>&1 + fi + fi + + ## - Delete routing table $number_rt_table if exists, but not matches $rt_name + ## - + if $(grep -E "^$number_rt_table" /etc/iproute2/rt_tables > /dev/null 2>&1) ; then + + if ! $(grep -E "^$number_rt_table\s+$rt_name" /etc/iproute2/rt_tables > /dev/null 2>&1) ; then + echo "" >> $log_file + echo "## - Delete routing table \"$number_rt_table\" in file /etc/iproute2/rt_tables" >> $log_file + echo "## -" >> $log_file + echo "sed -i \"/$number_rt_table/d" /etc/iproute2/rt_tables\" >> $log_file + + sed -i "/$number_rt_tablei/d" /etc/iproute2/rt_tables > /dev/null 2>&1 + fi + fi + + ## - Delete routing table number $number_rt_table not matching $rt_name + ## - + if $(grep -E "$number_rt_table\s+[^(${rt_name})]" /etc/iproute2/rt_tables > /dev/null 2>&1) ; then + + echo "" >> $log_file + echo "## - Delete routing table number $number_rt_table not matching $rt_name" >> $log_file + echo "## -" >> $log_file + echo "sed -i \"/${number_rt_table}\s\+[^(${rt_name})]/d\" /etc/iproute2/rt_tables" >> $log_file + + sed -i "/${number_rt_table}\s\+[^(${rt_name})]/d" /etc/iproute2/rt_tables > /dev/null 2>&1 + fi ## - Add new routing table to /etc/iproute2/rt_tables ## - if not yet exists