Verifique o sucesso do arquivo remoto anexado via ssh

0

Eu gosto de acrescentar periodicamente alguns dados a um arquivo remoto via ssh e removê-lo localmente. Como:

cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt'
rm some_lines_to_append.txt

Agora, quero garantir que some_lines_to_append.txt seja removido apenas se as linhas forem transferidas com sucesso. Como fazer isso?

Será que >> criará algum tipo de código de retorno de erro por si só em caso de falha, ou será cat neste caso, e ssh fornecerá esse código de retorno?

O shh em si fornecerá códigos de retorno diferentes de zero em qualquer ocasião em que tenha sido finalizado prematuramente?

    
por dronus 25.01.2017 / 00:34

1 resposta

1

cat retornará 0 (zero) no sucesso.

De acordo com ssh manual:

EXIT STATUS

  ssh exits with the exit status of the remote command or with 255 if an error occurred.

Então, no seu caso, é o suficiente

cat some_lines_to_append.txt |
   ssh [email protected] 'cat >> all_lines_collected.txt' &&
   rm some_lines_to_append.txt ||
   echo 'Error occurred.'
    
por 25.01.2017 / 01:34

Tags