Como redirecionar a saída do tarsnapper para / dev / null?

1

Eu uso o comando tarsnapper para gerenciar tarsnap backups como este:

tarsnapper -c /usr/local/etc/tarsnapper.conf make

O que funciona como deveria e eu recebo uma saída como essa

Creating backup mail: mybackupjob-20150610-092951
3 backups are matching
0 of those can be deleted

Agora estou executando isso no cron assim (o cron parece estar rodando em / bin / sh no Ubuntu 15.04)

0 2 * * * PATH=$PATH:/usr/local/bin tarsnapper -c /usr/local/etc/tarsnapper.conf make >/dev/null

Que funciona de outra forma, mas por alguma razão eu ainda recebo a saída (stdout) no meu email pelo cron, então o redirecionamento do stdout para / dev / null parece não funcionar conforme necessário.

Eu tentei depurar apenas executando o comando sem cron usando o redirecionamento e ainda assim recebo a saída ao executar:

tarsnapper -c /usr/local/etc/tarsnapper.conf make >/dev/null

Então, como eu posso redirecionar corretamente a saída normal (stdout) dessa invocação do tarsnapper para / dev / null?

Eu nunca tive esse tipo de problema usando >/dev/null de redirecionamento com outros comandos, então deve ser algo relacionado ao funcionamento do tarsnapper, certo?

Eu sei que o tarsnapper é um script python que chama o binário tarsnap.

Eu tentei procurar respostas sobre o redirecionamento de stdout, mas não consegui encontrar nada que pudesse resolver o meu problema.

    
por Haprog 10.06.2015 / 12:02

1 resposta

1

Droga, logo depois que eu postei minha pergunta eu descobri o problema (depois de tentar encontrar uma resposta por cerca de uma hora ou duas).

Parece que o tarsnapper apenas exibe toda a sua saída normal para stderr em vez de stdout. Eu acho que isso é um bug no tarsnapper.

Mas para responder a minha própria pergunta eu só preciso redirecionar usando 2>/dev/null (para rediredt stderr) para me livrar da "saída normal", mas eu acho que não vou conseguir nenhuma saída, mesmo que existam possivelmente reais erros (que eu ainda gostaria de receber no meu e-mail do cron, se ocorrerem erros).

Editar:

Como uma "solução" temporária acabei apenas redirecionando toda a saída (stdout e stderr) do tarsnapper anexando-a a um arquivo de log usando isso no cron:

0 2 * * * PATH=$PATH:/usr/local/bin tarsnapper -c /usr/local/etc/tarsnapper.conf make >>/var/log/tarsnapper-cron.log 2>&1

Então eu posso apenas verificar /var/log/tarsnapper-cron.log se eu quiser ver como o tarsnapper está trabalhando sem spam meu e-mail via cron.

Obviamente, seria melhor se eu também conseguisse erros no meu e-mail automaticamente, mas atualmente isso não parece ser possível sem modificar o próprio tarsnapper ou fazer um script que analise a saída do tarsnapper e tente descobrir se existe um erro ou não baseado no texto de saída.

    
por 10.06.2015 / 12:10