por que /etc/cron.hourly/myjob não está funcionando?

1

Em /etc/cron.hourly, existe um arquivo:

-rwxr-xr-x  1 root root  117 Mar  8 20:33 myjob

myjob:

3,18,33,48 * * * * /usr/bin/python /home/me/src/myproject/src/manage.py myjobs > /home/me/log
3,18,25,27,29,31,33,35,37,48 * * * * /bin/echo "testing....." > /home/me/log

/ etc / crontab:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

por que o arquivo de log não aparece? Alguma coisa faltando? myjob deve ser executado a 3,18, ... minuto em cada hora

    
por BAE 08.03.2016 / 21:37

2 respostas

1

Os scripts em /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly devem ser executados em horários específicos e não estão no formato clássico crontab. Ou, simplesmente, eles são scripts, não arquivos no formato crontab.

No caso do /etc/cron.hourly, eles são executados a cada hora.

você tem que inserir essa linha no crontab com o crontab -e. Para correr em /etc/cron.hourly você teria que retirar os 5 campos de tempo para executar apenas a cada hora (por exemplo, tirando 3,18,33,48 * * * *).

Portanto, no seu caso, você move seu script para /etc/cron.d ou adiciona ao seu arquivo crontab o conteúdo do meu trabalho. retire-o do diretório /etc/cron.hourly.

De volta a /etc/crond.d, você precisa colocá-lo como em arquivo como:

3,18,33,48 * * * * root /usr/bin/python ....
    
por 08.03.2016 / 21:45
2

As entradas no cron.hourly são executadas pelo mecanismo de partes de execução (man-run-parts para mais informações). E as partes de execução são exigentes quanto aos nomes de arquivos que considera válidos.

Por exemplo, dar ao seu script uma extensão tornará isso inválido e fará com que o trabalho não seja executado.

Ao adicionar uma tarefa a /etc/cron.hourly (ou a .daily, .weekly, etc), sempre teste depois que as partes de execução irão executá-las emitindo o comando: run-parts --test / etc / cron.hourly

    
por 08.03.2016 / 21:47

Tags