Redirecionar o cronjob STDOUT e STDERR para / dev / null não funcionar

1

Estou perplexo sobre por que isso não está funcionando.

Eu tentei redirecionar STDOUT e STDERR usando "& >" e também "2 > & 1" e nenhum parece funcionar. Eu ainda recebo e-mail por este trabalho cron (a cada minuto!) Com o smbclient reclamando que não há arquivos no compartilhamento.

* * * * * smbclient //scanner/scan-import secretpass -U administrator -c "prompt; mget *; del *" &> /dev/null

Para os curiosos: Um cliente tem um scanner antigo e caro que digitaliza vários documentos em alta velocidade - mas o software não tem como configurar o local de gravação. Eles não querem que os documentos sejam salvos diretamente na antiga estação de trabalho do XP, então eu compartilhei o local de salvamento e uso essa tarefa cron para puxar os documentos automaticamente para o servidor linux deles.

    
por Aaron C. de Bruyn 01.03.2011 / 03:32

3 respostas

5

O Bash suporta o redirecionamento de stdout e stdin juntos usando &> , mas sh não. Cron usou o shell Bourne ( sh ) em vez de Bash. Use >/dev/null 2>&1 em vez disso.

    
por 01.03.2011 / 04:56
4

Eu não acho que você precise do primeiro "&" você? Apenas "> / dev / null 2 > & 1";

    
por 01.03.2011 / 03:45
2

Tente envolver tudo isso em um script de shell separado:

#!/bin/bash
smbclient //scanner/scan-import secretpass -U administrator \ 
      -c "prompt; mget *; del *" 

e edite a linha cron para

* * * * * /path/to/your/script &> /dev/null
    
por 01.03.2011 / 04:25