Como redirecionar a mensagem de aviso da linha de comando para um arquivo de log?

0

Eu tenho um loop abaixo que é usado para verificar o namenode ativo no cluster do Hadoop e, se o primeiro nó estiver inativo, ele pega o segundo.

for (( i=0;i<$(($(wc -l < $LOCAL_DIR/'tempip.txt')/3));i++ )){
  j=$(($i*3))
  echo ${ipArray[j]} >> $LOCAL_DIR/tmpOp.txt 2> /dev/null 
  if hdfs dfs -test -e ${ipArray[$j+1]} ; then
   hdfs dfs -cat ${ipArray[$j+1]}/* | wc -l>> $LOCAL_DIR/tmpOp.txt 2> /dev/null 
  elif hdfs dfs -test -e ${ipArray[$j+2]} ; then
   hdfs dfs -cat ${ipArray[$j+2]}/* | wc -l>> $LOCAL_DIR/tmpOp.txt 2> /dev/null 
  else
   echo "Invalid"
  fi
}

O problema aqui é sempre que o namenode é encontrado inativo, ele lança a mensagem abaixo na janela e continua com outro namenode. Eu redirecionei meu erro para o diretório nulo, mas ainda o recebo . Como posso me livrar disso?

test: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
    
por Alex Raj Kaliamoorthy 20.05.2016 / 11:05

1 resposta

1

Você está descartando a saída de erro de wc , não de hdfs .

Veja minha resposta para uma citação semelhante no serverfault .

    
por 20.05.2016 / 14:04