diff --git a/xCAT-server/share/xcat/scripts/xHRM b/xCAT-server/share/xcat/scripts/xHRM index 5144e95e1..0485dae46 100755 --- a/xCAT-server/share/xcat/scripts/xHRM +++ b/xCAT-server/share/xcat/scripts/xHRM @@ -1,5 +1,5 @@ -#!/bin/bash -if [ "$(uname -s|tr 'A-Z' 'a-z')" = "linux" ];then +#!/bin/bash -u +if [ "$(uname -s|tr '[:upper:]' '[:lower:]')" = "linux" ];then str_dir_name=$(dirname $0) . $str_dir_name/xcatlib.sh fi @@ -9,7 +9,7 @@ function get_def_interface { #are in bash, the best alternative is to use ping to get at it #don't want to grep in /etc/hosts or presume DNS #we are, however, presuming ipv4 for the moment - retval=$(ping -c 1 $(hostname)|head -n 1|cut -d\( -f 2|cut -d\) -f 1) + retval=$(ping -c 1 "$(hostname)"|head -n 1|cut -d\( -f 2|cut -d\) -f 1) if [ -z "$retval" -o "127.0.0.1" = "$retval" ]; then #ok, that didn't pan out, now we grab the first address that looks sane #retval=`ifconfig|grep inet" " |grep -v addr:127.0.0.1|grep -v 'addr:169.254'|head -n 1|cut -d: -f 2|cut -d' ' -f 1` retval=$(ip -4 -oneline addr show|grep -v "127.0.0.1"|grep -v '169.254'|head -n 1|awk -F 'inet ' '{print $2}'|awk -F '/' '{print $1}') @@ -30,13 +30,13 @@ function get_def_interface { INMATCH=0 for brline in $(brctl show); do IFS=$OIFS - if [ $(expr match "$brline" $iface) == $(expr length $iface) ]; then + if [ "$(expr match "$brline" $iface)" == ${#iface} ]; then INMATCH=1 - elif [ $(expr match "$brline" " ") != 1 ]; then + elif [ "$(expr match "$brline" " ")" != 1 ]; then INMATCH=0 fi if [ "$INMATCH" == 1 ]; then - if ! ethtool -i $(echo $brline|awk '{print $NF}')|grep "driver: tun" >& /dev/null; then + if ! ethtool -i "$(echo $brline|awk '{print $NF}')"|grep "driver: tun" >& /dev/null; then iface=$(echo $brline|awk '{print $NF}') echo "$iface" IFS=$OFIS @@ -77,8 +77,7 @@ function debianpreconf(){ CONFFILE='' #read the backfile - cat /etc/network/interfaces.bak | while read LINE - do + while read LINE; do if [ ! "$LINE" ];then continue fi @@ -107,7 +106,7 @@ function debianpreconf(){ echo $LINE >> $CONFFILE fi - done + done > $nwdir/$BNAME - echo " address $bridge_ip" >> $nwdir/$BNAME - echo " netmask $bridge_mask" >> $nwdir/$BNAME + { echo "iface $BNAME inet static" + echo " address $bridge_ip" + echo " netmask $bridge_mask"; } >> $nwdir/$BNAME else echo "iface $BNAME inet dhcp" >> $nwdir/$BNAME fi fi - echo " bridge_ports $PORTS" >> $nwdir/$BNAME - echo " bridge_stp off" >> $nwdir/$BNAME - echo " bridge_fd 0" >> $nwdir/$BNAME - echo " bridge_maxwait 0" >> $nwdir/$BNAME + { echo " bridge_ports $PORTS" + echo " bridge_stp off" + echo " bridge_fd 0" + echo " bridge_maxwait 0"; } >> $nwdir/$BNAME else cat >$nwdir/ifcfg-$PORTS <