Como posso passar o sucesso (ou falha) de um comando para uma variável?

1

Estou executando rsnapshot para fazer backups do meu NAS. Estou encaminhando a saída do comando (por exemplo, rsnapshot hourly , rsnapshot daily etc.) para / tmp / rsnapshot_stats_hourly. Em outro script, gostaria de definir uma variável com base no resultado do comando / o que está no arquivo de estatísticas. Portanto, desejo definir a variável "$status" como "success" ou "failure" com base em se houve ou não erros durante a execução do rsnapshot.

Alguém pode me ajudar com isso? Minhas habilidades são muito baixas a esse respeito, infelizmente. Obrigado.

    
por user43961 25.01.2015 / 09:28

1 resposta

1

Como indicado no comentário à pergunta man rsnapshot diz:

EXIT VALUES

       0  All operations completed successfully

       1  A fatal error occurred

       2  Some warnings occurred, but the backup still finished

Você pode modificar sua linha de comando, por exemplo:

rsnapshot ... with_all_arguments ; [ $? == 0 ] && rm -f flag.file || touch flag.file

Ou o mesmo:

if rsnapshot ... with_all_arguments ; then
    rm -f flag.file 
else 
    touch flag.file
fi

E a partir de outro script, basta verificar a existência do flag.file .

Mas muito melhor para usar a opção de log do rsnapshot e verificar o arquivo de log.

    
por 25.01.2015 / 11:50