Mac Crontab non viene mai creato


12

Sto cercando di impostare un cron sul mio mac, ma sembra che non finisca mai di creare un crontab per il mio utente. Apro il terminale e inserisco:

$ crontab -e 

Che restituisce questo:

crontab: no crontab for jjmay - using an empty one




















~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
"/tmp/crontab.rBdeP6yv1U" 0L, 0C

E poi aspetta lì fino a quando non chiudo fuori dalla finestra, l'ho lasciato andare per 20 minuti. Apro un'altra finestra del terminale per verificare la creazione del mio crontab e non ottengo nulla.

$ crontab -l 
crontab: no crontab for jjmay

Qualche idea sul perché non riesco a crearlo o se posso creare manualmente il mio crontab in modo da poterlo modificare?


È passato un po 'di tempo da quando ho incasinato i file crontab in OS X, ma la mia ipotesi è che questo: "/tmp/crontab.rBdeP6yv1U" 0L, 0C indica che non sei nella directory corretta o non hai i permessi per scrivere in quella directory. Qual è la directory in cui ci si trova quando si digita "crontab -e"? JDB
JDB,

@JDB grazie. Non sapevo che avrei dovuto essere in una directory specifica. Ero solo nella mia directory predefinita quando ho aperto il terminale, solo la mia directory utente predefinita. / Users / <my_username> /
Jage

Risposte:


22

Non si tratta dell'editor, si tratta delle autorizzazioni dell'utente. Prima diventa root:

sudo su -

Quindi modificare il crontab per l'utente corretto:

crontab -u username -e

Dopo aver salvato il file, puoi verificare che sia stato salvato correttamente eseguendo questo:

crontab -u username -l

1
Questa soluzione ha funzionato per me. Una variante che sorprendentemente non ha funzionato per me è stata:sudo crontab -u username -e
Andrew Miner,

7

Ho riscontrato questo problema proprio ora. Durante il tentativo di risolvere il problema, sono stato indirizzato qui da Google. Comunque, ecco come l'ho risolto.

uso

crontab -e

che hai fatto bene.

Premi 'i' per inserire il tuo cronjob. Per esempio,

1 * * * * /Users/Wong/Documents/abc.command

~

Ricorda di premere Invio dopo la riga. Se non premi Invio, sarà così

1 * * * * /Users/Wong/Documents/abc.command

Premere ESC e digitare: wq per salvare ed uscire dal file. Dovrebbe essere indicato "crontab: installazione di un nuovo crontab"

Mi sono reso conto che se non premi Invio dopo la riga, non salverà il tutto.

Spero che sia d'aiuto.


Grazie. Continuavo a uscire :q!mentre la tua soluzione :wqfaceva la differenza.
KeitelDOG,

1
Benvenuto. :q!ti consente di uscire senza salvare mentre :wqscrive sul file prima di uscire .
Richard Wong,

Sono al passo con i comandi VIM, quindi ora so molte cose che avrei dovuto sapere!
KeitelDOG

1

Chiudere la finestra del terminale non salverà il crontab.

Dal momento che sta usando VIM per creare il file, cerca come utilizzare VIM e andare da lì.

launchd è il metodo preferito (Apple) in 10.5 e 10.6, ma non hai chiesto questo, solo come creare il crontab.


1

La finestra che sta mostrando è un editor vi. Sui sistemi unix tradizionali, vi è l'editor predefinito; sembra che Mac OS X abbia mantenuto quella tradizione.

Impostare le variabili di ambiente EDITORe VISUALsul nome (percorso completo, se non è in $PATH) dell'editor preferito. Per esempio

export EDITOR=emacs VISUAL=emacs
crontab -e

Questa impostazione dovrebbe entrare nel tuo ~/.profile(supponendo che Mac OS X legga quel file quando accedi; se esiste un modo OSX per definire le variabili di ambiente per un'intera sessione, puoi definirle lì).


0

È la mia soluzione: prima modifica il tuo editor. export EDITOR=vim quindi modificare .vimrc autocmd filetype crontab setlocal nobackup nowritebackup funzionerà.


Cosa fa questo? Per quanto mi riguarda, sarei molto cauto nel cambiare i file di configurazione, per così dire, nel frattempo, un estraneo anonimo che non spiega nemmeno cosa dovrebbero fare i cambiamenti.
David Richerby,

Mi dispiace per quello. Ho già riscontrato questo problema, quindi google ottengo questo metodo, ma non riesco a trovare il post di origine. Quindi ho appena pubblicato questo metodo, ha funzionato per me. E puoi anche google questo metodo per sapere perché funziona? La prossima volta migliorerò la mia risposta. Scusa per il mio cattivo inglese.
Pegasus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.