Não consigo fazer meu crontab funcionar

0

Eu tenho o seguinte arquivo crontab (como root):

# Edit this file to introduce tasks to be run by cron.
# Each task to run has to be defined through a single line
indicating with different fields when the task will be run
and what command to run for the task
# To define the time you can provide concrete values for
minute (m), hour (h), day of month (dom), month (mon),
and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# For more information see the manual pages of crontab(5) and cron(8)
# m h  dom mon dow   command

1 * * * *  echo "test" >> /tmp/testing.txt

O problema é que o comando nunca é executado. Eu posso ver em /var/log/syslog que o arquivo foi editado:

May 25 17:51:57 XXXX crontab[5010]: (root) BEGIN EDIT (root)
May 25 17:52:26 XXXX crontab[5010]: (root) REPLACE (root)
May 25 17:52:26 XXXX crontab[5010]: (root) END EDIT (root)

Quando executo o crontab -l , posso ver o arquivo.

Cron service is running

Eu verifiquei o /var/spool/cron/crontabs/ e a raiz do arquivo está lá:

drwx-wx--T 2 root crontab 4096 May 25 17:53 .
drwxr-xr-x 5 root root    4096 Mar 17  2017 ..
-rw------- 1 root crontab 1384 May 25 17:53 root

e tem o conteúdo adequado. Eu reiniciei o servidor e ainda não tive sorte.

Alguém pode me guiar na direção certa, por favor?

    
por Mikkel Olsen 25.05.2018 / 18:07

1 resposta

2

Existem algumas linhas no seu crontab que devem ser comentários, mas não têm um # na frente. Em um comentário, você disse que isso é errado em sua postagem e removê-los não ajudou.

A linha

1 * * * *  echo "test" >> /tmp/testing.txt

parece bem, mas isso significa

run the given command every hour, every day at minute 1, i.e. at 12:01, 13:01, 14:01, 15:01, etc.

Você precisaria esperar até que a hora fosse alcançada. Se você quer executar o seu trabalho a cada minuto você precisa de uma estrela * no campo de minutos também:

* * * * *  echo "test" >> /tmp/testing.txt

Isso será executado a cada minuto. Eu encontrei este editor on-line útil para ver o que é certo padrão significa.

    
por PerlDuck 25.05.2018 / 20:07