Crontab influencia o script bash se a condição?

1

Estou um pouco confuso aqui, e não tenho certeza como depurar isso. Eu tenho um script bash auto-escrito, que verifica se um compartilhamento de samba está ativo, e se não, me envia um email.

O script está em / root / SKRIPTS /, a permissão é assim:

-rwxr-xr-x   1 root  wheel   281 Nov  8 08:54 test_samba_shares.sh
-rwx------   1 root  wheel    39 Nov  7 13:56 smbclient.cred

O conteúdo do script .sh é este:

smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup

if [ $? -eq 0 ]
then
    echo "Backup_* mounted, nothing to do"
else
    echo "Subject: Samba has failed" | /usr/sbin/sendmail -v [email protected]
fi

return 1;

/ etc / crontab se parece com isso (somente entrada)

10 1 * * * root /root/SKRIPTS/test_samba_shares.sh

A coisa é, se eu, como root, executar isso, funciona sem problemas. Mas toda noite eu recebo um email que o samba falhou, indicando que o script cron de alguma forma tropeça no caminho else. Como isso pode ser? Estou faltando alguma coisa óbvia aqui? Qual seria a melhor maneira de depurar isso?

Obrigado pela sua ajuda

    
por Sebastian 12.11.2018 / 15:54

1 resposta

5

Às vezes, as tarefas do cron não são executadas com o $PATH que você espera. Antes de mais nada, eu tentaria qualificar totalmente o caminho para o seu executável smbclient , apenas para eliminar isso como uma possibilidade. Ou, exporte explicitamente seu PATH no script wrapper chamado pelo cron.

    
por 12.11.2018 / 16:58