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

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

Eu tenho um loop abaixo que é usado para verificar o namenode ativo no cluster 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 é que sempre que o namenode é encontrado inativo, ele lança a mensagem abaixo na janela e continua com outro namenode.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

Responder1

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

Veja minha resposta para algo semelhanteem falha no servidor.

informação relacionada