Question. Est-ce que cron
est supposé fonctionner sous OSX El Capitan?
Contexte. J'ai utilisé crontab pendant des années sur OSX, mais avec El Capitan, cela ne semble pas fonctionner. J'ai ajouté mon nom d'utilisateur à /usr/lib/cron/cron.allow
et j'ai même redémarré la machine, mais mes tâches cron ne font toujours rien et ne m'envoient pas d'erreurs. Les pages de manuel suggèrent qu’Apple ne souhaite pas que les utilisateurs utilisent cron, mais ils ne disent pas qu’il n’est pas (encore) fonctionnel.
Cela semble fonctionner pour moi, mais je pense que vous devez spécifier l'éditeur:
env EDITOR=nano crontab -e
Ajoutez vos crons, puis enregistrez le fichier avec le nom et l'emplacement donnés. Dans mon cas, c'est un fichier dans /tmp/crontab.xxxx
.
Ensuite, si vous faites crontab -l
, vous devriez voir votre cron.
Ceci est une autre réponse pour quiconque trouve cela via Google. Il n'y a pas beaucoup de résultats.
Pour moi, /usr/lib/cron
était en quelque sorte lié symboliquement à /var/at
(dont je n'avais même jamais entendu parler…), et /var/at
avait un fichier cron.allow
, dans lequel mon nom d'utilisateur n'était pas. Exécuter donc Sudo vi /var/at/cron.allow
et ajouter mon nom d'utilisateur (rediriger echo
dans ce fichier). n'a pas fonctionné…) l'a corrigé.
Pour Mojave, Accès total au disque vous empêche de modifier les fichiers système (y compris les données relatives à la confidentialité ainsi que la configuration du système, comme les crontabs).
Pour activer l'accès:
Sur un MacBook, en utilisant El Capitan (10.11.5), "cron" fonctionne toujours très bien.
"/usr/lib/cron.deny" est la valeur par défaut (répertorie "Invité" uniquement) et il n'y a pas de "cron.allow". Je ne me souviens pas d'avoir fait de personnalisations pour que cela fonctionne (pas de fichiers init/config mods, pas de chmod, pas de fichier/répertoire ne crée/supprime, etc.).
(Utilisait-il 10.6. * Jusqu'à la mort de ce MacBook en avril? Commencé à utiliser 10.11 à la mi-mai, j'ai restauré ma crontab après la mise à jour de 10.11.5 (? Fin mai?). Donc, je ne sais pas si cron fonctionnait sous 10.11, réactivée par la mise à jour 10.11.5.)
Essayez ce test simple: "crontab -e", puis "*/5 * * * * date >> /tmp/z.date". Devrait voir une nouvelle date toutes les cinq minutes.
Si cela fonctionne, essayez "*/5 * * * * env >> /tmp/z.date.1" et vérifiez votre environnement. Par exemple, le PATH par défaut est assez court.
Btw, "at" est une file d'attente de travail par lots. "at", "batch" et "cron" sont souvent regroupés, comme ils font des variations de la même chose.
Si vous tapez cd /usr/lib/cron
puis ls
, vous verrez que vous avez at.deny
et cron.deny
, mais pas at.allow
ni cron.allow
. Exécutez Sudo nano cron.allow
et entrez vos noms d'utilisateur un par ligne. Créez une copie pour at.allow
. J'ai créé ces deux fichiers et il a commencé à fonctionner.
cron ignorera complètement tous les travaux pendant que la machine est en veille. Essayez de vérifier vos paramètres d'économie d'énergie (voir ci-dessous).
launchd (alternative recommandée par Apple) ne s'exécute pas non plus lorsque la machine est en veille, mais ne saute pas de tâches. Au lieu de cela, les tâches sont exécutées lorsque la machine se réveille.
Selon Apple, cron était obsolète depuis un certain temps. Ils doivent avoir finalement débranché le GM d'El Capitan. Apple suggère d'utiliser launchd au lieu de cron. Voici un tutoriel: launchd