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.
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.
Eu não acho que você precise do primeiro "&" você? Apenas "> / dev / null 2 > & 1";
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