Comment configurer un travail cron sur OS X pour exécuter une commande curl à une heure spécifique chaque jour?

20

J'ai une commande CURL que je veux exécuter tous les jours à 3 heures du matin, mais je ne sais pas comment configurer cela et les guides sont tous étranges.

Supposons que j'ai beaucoup d'expérience sur les terminaux / bash, mais je n'ai jamais configuré de cron auparavant.

Est-il possible que le travail cron réveille mon ordinateur, même s'il est en veille et que le couvercle est fermé (macbook pro), juste pour exécuter cette commande one curl puis le remettre en veille?

Comment puis-je le configurer de toute façon?

marcamillion
la source

Réponses:

22

Commencez par exécuter la commande:

crontab -e

Cela ouvrira la crontab pour votre utilisateur dans un éditeur de texte. Cron utilise une notation spécifique pour les travaux planifiés. Le format ci-dessous montre les champs d'une entrée utilisateur crontab (qui doivent être séparés par des tabulations).

min  hour  day_of_month  month  day_of_week  command

Pour planifier l'exécution quotidienne d'une commande curl à 3 heures du matin, vous pouvez insérer la ligne:

0  3  *  *  *  curl args...

Remarquez comment les minutes et les heures correspondent à 3 heures du matin (note latérale: cron utilise le format de l'heure sur 24 heures, ni le matin ni l'après-midi). Les astérisques qui suivent signifient chaque jour du mois, chaque mois, chaque jour de la semaine.

Cron ne sera pas en mesure de réveiller votre ordinateur du sommeil, mais vous trouverez peut-être ce post utile pour sortir le osx du sommeil

diametralpitch
la source
1
Quand je le fais, crontab -eje vois cela dans mon terminal:, $ crontab -e crontab: no changes made to crontabpuis il ouvre mon éditeur de texte avec le fichier crontab.some-random-stringdu dossier /tmp. Une fois que je l'ai édité et enregistré, rien ne se passe dans mon terminal. Si je le fais crontab -l, le travail que je viens de saisir n'apparaît pas. Ensuite, si je crontab -erecommence, cela ouvre un autre vide crontab.some-random-string. J'ai également testé le premier crontab que j'ai enregistré en définissant le temps à 2 minutes à partir du moment où je l'ai enregistré et le cron n'a jamais fonctionné. Que pourrait-il se passer?
marcamillion
Quel éditeur de texte s'ouvre lorsque vous exécutez «crontab -e»?
diametralpitch
Mon seul défaut, atom. C'est ce qui se lance lorsque j'ouvre quelque chose à éditer dans mon terminal. Voilà ce que j'ai dans mon ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion
Hmm, si vous exécutez atom à partir de la ligne de commande seule, attend-il que atom se termine avant de demander une autre commande (sinon, vous pouvez essayer un autre éditeur de texte).
Adam Luchjenbroers
@AdamLuchjenbroers Je ne suis pas sûr de bien comprendre votre question. J'utilise atom pour toutes mes modifications de code. Donc, si je veux éditer un fichier, je le fais juste atom .à l'intérieur du répertoire ou atom <filepath>.
marcamillion
0

si vous aimez le faire de la manière graphique, je peux vous recommander CronniX de roaringapps https://roaringapps.com/app/cronnix

Konqui
la source
Merci pour cette astuce .... mais je pense que je préférerais le faire manuellement sur la ligne de commande ou via l'éditeur de texte pour apprendre :)
marcamillion