#/bin/bash function join_by() { local IFS="$1"; shift; echo "$*"; } #cx4nodes=( isc17-c0{1..9} isc17-c{10..23} ) #cx4nodes=( isc17-c0{1..9} isc17-c{10..18} isc17-c{20..23} ) cx4nodes=( c0{1..9} c{10..18} c{20..23} ) node_list=$( join_by , "${cx4nodes[@]}" ) echo "isc17-c19 is blacklisted (asks for password)" IFS='' read -r -d '' script <<"EOF" declare -a reply #if [ ! -d /ime/jtacquaviva ]; then # reply[0]="/ime/ is not mounted" #fi if [ ! -d /gsfs/jtacquaviva ]; then reply[1]="/gsfs/ is not mounted" fi cx4="$(lspci | grep ConnectX-4)" if [[ "" == $cx4 ]]; then reply[2]+="no cx4" fi reply=$(IFS=', '; echo "${reply[*]}") echo "${reply/,/ - }" EOF declare -a good_nodes for node in ${cx4nodes[@]}; do #echo "ping $node" status=$(ping -c1 $node | grep Unreachable) if [[ "" == $status ]]; then check=$(ssh $node "$script") if [[ "" == ${check} ]]; then good_nodes=( ${good_nodes[@]} $node ) else echo "$node failed with: $check" fi else echo "$node is unreachable" fi done echo "GOOD NODES:" echo "${good_nodes[@]}"