web-dev-qa-db-fra.com

Crontab fonctionne toutes les 15 minutes sauf à 3 heures du matin?

Est-il possible d'avoir un cronjob exécuté toutes les 15 minutes (toutes les heures, etc.) sauf à 3 heures du matin?

J'ai un autre cronjob spécial que je veux exécuter à 3 heures du matin, mais je ne veux pas que l'autre s'exécute en même temps ...

52
Eric Seifert

Avec une seule ligne cron, non. Avec trois, oui:

# Every 15 minutes except for 3:00-3:59
*/15 0-2,4-23 * * * thejob
# 3:15, 3:30, 3:45
15-45/15 3 * * * thejob
# 3:00 dead
0 3 * * * otherjob
110
fge

J'ai fait ma propre solution, mais je voulais voir ce que les autres pensaient!

Je mets cela en haut de mon script souhaité. Je voulais qu'il ne fonctionne pas non plus à la demi-heure, donc il ne le fait pas sur les deux.

En plus du script:

if [ $(date +%M) = 00 ] || [ $(date +%M) = 30 ]
then
exit
fi

La ligne cron:

*/15 * * * * ~/path/to/file

J'espère que n'importe qui utilise ma solution aussi.

7
Eric