2015-09-25 11 views
16

Domanda. È previsto che cron funzioni in OSX El Capitan?è crontab rotto su OSX El Capitan?

Sfondo. Ho usato crontab per anni su OSX, ma con El Capitan sembra non funzionare. Ho aggiunto il mio nome utente a /usr/lib/cron/cron.allow e ho anche riavviato la macchina, ma i miei lavori cron non fanno nulla, né mi mandano mail con errori. Le manpage suggeriscono che Apple non vuole che le persone utilizzino cron, ma non dicono che sia non funzionale (ancora).

+0

Quali sono le autorizzazioni e le impostazioni proprietario/gruppo per la vostra cron.allow? –

+0

-rw-r - r-- 1 ruota principale 7 24 set 08:11 /usr/lib/cron/cron.allow – dank

+0

sì, è corretto. Non riesco a immaginare che Apple lo disabiliti, beh, forse posso: p –

risposta

11

Sembra funzionare per me, ma penso che è necessario specificare l'editor:

env EDITOR=nano crontab -e

Aggiungi il tuo cron, e quindi salvare il file con il nome e la posizione dato. Nel mio caso si tratta di un file in /tmp/crontab.xxxx.

Quindi se lo fai crontab -l dovresti vedere i tuoi crons.

+0

Grazie. È un po 'di confusione confondere perché il file inizia in bianco in OSX. Normalmente in linux c'è un testo di aiuto in alto. –

-1

Secondo Apple, cron è stato ritirato qualche tempo fa. Devono aver finalmente tolto la spina al GM di El Capitan. Apple suggerisce di usare launchd invece di cron. Ecco un tutorial: launchd

12

Questa è un'altra risposta per chiunque lo trovi tramite Google. Non ci sono molti risultati.

Per me, in qualche modo è stato /usr/lib/cron link simbolico a /var/at (che non avevo mai nemmeno sentito parlare di ...), e /var/at aveva un file cron.allow, che il mio nome utente non era in, in modo da correre sudo vi /var/at/cron.allow e aggiungendo il mio nome utente (in qualche modo reindirizzamento echo in quel file non ha funzionato ...) risolto.

+0

questo ha funzionato per me su El Capitan –

+0

Questa è la risposta corretta. Funziona il 10.11.6 –

+0

Grazie per questa risposta. Stavo cercando di "lavorare" e attraverso questa risposta alla fine ho capito che "atrun" era disabilitato di default. Vedi 'man atrun' per i dettagli su come abilitarlo. –

5

Su un MacBook, utilizzando El Capitan (10.11.5), "cron" funziona ancora perfettamente.

"/usr/lib/cron.deny" è l'impostazione predefinita (elenca solo "Guest") e non c'è "cron.allow". Non ricordare di fare personalizzazioni per farlo funzionare (nessun file init/config mod, nessun chmod, nessun file/dir crea/cancella, ecc.).

(Era in uso 10.6. * Fino a quando MacBook è morto in aprile. Iniziato a utilizzare 10.11 a metà maggio, ripristinato il mio crontab dopo l'aggiornamento 10.11.5 (? Fine maggio?). Quindi non so se cron funzionava sotto 10.11 o riattivato dall'aggiornamento 10.11.5)

Provate questo semplice test: "crontab -e", quindi "*/5 * * * * date >> /tmp/z.date". Dovresti vedere una nuova data ogni cinque minuti.

Se funziona, provare "*/5 * * * * env >> /tmp/z.date.1" e controllare l'ambiente. Ad esempio, il PATH predefinito è piuttosto breve.

Btw, "at" è una coda di lavori batch. "at", "batch" e "cron" sono spesso raggruppati insieme, poiché eseguono variazioni della stessa cosa.

+0

Per favore, correggi la formattazione del tuo post! – coatless

0

cron salterà completamente qualsiasi lavoro mentre la macchina è in stato di riposo. Prova a verificare le impostazioni del tuo energy saver (vedi sotto).

launchd (alternativa consigliata da Apple) inoltre non viene eseguito mentre la macchina è in sospensione, ma non salta i lavori. Invece i lavori vengono eseguiti quando la macchina si risveglia.

Energy Saver Settings