Script em execução no terminal, mas não no crontab

3

Meu problema é o seguinte:

Eu fiz um script chamado copy.sh na pasta /var/etc para copiar alguns arquivos .cfg para myfiles

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
cp *.cfg /usr/local/myfiles/

Quando eu o executo em um terminal, o script faz o trabalho, mas em crontab não está funcionando:

*/1 * * * * /bin/sh /var/etc/copy.sh > /dev/null 2>&1 &

O log do crontab está bom porque quando eu faço um:

grep CRON /var/log/syslog

Eu vejo isto:

Aug 11 14:01:01 vmixxx25 /USR/SBIN/CRON[14840]: (root) CMD (/bin/sh /var/etc/copy.sh > /dev/null 2>&1 &)

Como devo proceder?

    
por andy 11.08.2015 / 14:05

1 resposta

1

O script é executado, há apenas um problema: use um caminho absoluto no seu script:

cp /path/to/*.cfg /usr/local/myfiles/

cron não sabe nada sobre a localização dos seus arquivos .cfg e, portanto, não copia nada.

Para melhorar seu crontab, simplesmente substitua sua linha pela linha abaixo. Você não precisa de um script para isso.

*/1 * * * * cp /path/to/*.cfg /usr/local/myfiles >/dev/null 2>&1

Atenção o comando será iniciado a cada minuto!

    
por A.B. 11.08.2015 / 14:29

Tags