web-dev-qa-db-fra.com

Comment activer cette crontab?

J'ai une configuration comme ci-dessous mais elle n'est jamais exécutée.

$ chmod +x /var/tmp/myscript.sh
$ vim /var/tmp/crontab.sh;
* * * * * sleep(10); /var/tmp/myscript.sh
$ crontab /var/tmp/crontab.sh

Maintenant, remarquez que cela ne fonctionne pas. Qu'est-ce que je fais mal?

$ grep CRON /var/log/syslog
Nov 28 15:20:01 Sun CRON[1768]: (Sun) CMD (sleep(10);/var/tmp/myscript.sh)
Nov 28 15:20:01 Sun CRON[1766]: (CRON) error (grandchild #1768 failed with exit status 2)
Nov 28 15:20:01 Sun CRON[1766]: (CRON) info (No MTA installed, discarding output)

suivi:

$ vim /var/tmp/crontab.sh
* * * * * sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1
$ tail -f /var/log/syslog | grep CRON
Nov 28 15:50:02 Sun CRON[2301]: (Sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
Nov 28 15:51:01 Sun CRON[2312]: (Sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
3
YumYumYum

sleep ne prend pas l'argument entre parenthèses (comme en C), il devrait donc être

* * * * * sleep 10; /var/tmp/myscript.sh

Testez toujours les commandes du shell système avant de l’envoyer à cron;).

2
arrange

En fait, le meilleur moyen d'utiliser crontab est d'utiliser crontab lui-même:

crontab -l # liste les entrées actuelles de la crontab

crontab -e # édite la table cron

Dès que vous avez terminé de modifier la crontab (via 'crontab -e'), elle est activée et lance tout ce qui a été défini à chaque fois.

Notez que la machine doit être en marche pour que crontab fonctionne. Si vous voulez quelque chose de plus flexible, vous pouvez regarder anacron (8).

3
hggdh