web-dev-qa-db-fra.com

est crontab cassé sur OSX El Capitan?

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.

23
dank

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.

16
Jesús Carrera

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é.

16
nickcoxdotme

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:

  • Allez dans Préférences Système > Sécurité et confidentialité > Confidentialité > Accès complet au disque
  • appuyez sur le bouton +
  • Ajoutez votre application de terminal (par exemple, /Applications/Utilities/Terminal.app ou /Applications/iTerm.app)
  • Redémarrez votre application de terminal
  • Configurer cron
  • Facultatif, mais vivement recommandé: Supprimez votre application de terminal de Full Disk Access lorsque vous avez terminé.
9
Berik

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.

5
geezer

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.

3
Max

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.

 Energy Saver Settings

2
E L

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

0
Lawson