Crontab Mac tidak pernah dibuat

12

Saya mencoba mengatur cron di mac saya, tetapi sepertinya tidak pernah selesai membuat crontab untuk pengguna saya. Saya membuka terminal dan masuk:

$ crontab -e 

Yang mengembalikan ini:

crontab: no crontab for jjmay - using an empty one




















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

Dan kemudian menunggu di sana sampai saya menutup jendela, saya membiarkannya selama 20 menit. Saya membuka jendela terminal lain untuk memeriksa pembuatan crontab saya dan saya tidak mendapatkan apa-apa.

$ crontab -l 
crontab: no crontab for jjmay

Ada ide mengapa saya tidak bisa membuat ini, atau jika saya bisa membuat crontab secara manual sehingga saya bisa mengeditnya?

Jage
sumber
Sudah beberapa saat sejak saya mengacaukan file crontab di OS X, tapi dugaan saya adalah ini: "/tmp/crontab.rBdeP6yv1U" 0L, 0C menunjukkan Anda tidak berada di direktori yang benar atau tidak memiliki izin untuk menulis ke direktori itu. Apa direktori tempat Anda mengetik "crontab -e"? JDB
JDB
@ JDB terima kasih. Saya tidak sadar bahwa saya harus berada di direktori tertentu. Saya hanya berada di direktori default ketika saya membuka terminal, hanya direktori Pengguna default saya. / Users / <my_username> /
Jage

Jawaban:

22

Ini bukan tentang editor, ini tentang izin pengguna. Pertama menjadi root:

sudo su -

Kemudian edit crontab untuk pengguna yang tepat:

crontab -u username -e

Setelah menyimpan file, dapat memverifikasi bahwa itu disimpan dengan benar dengan menjalankan ini:

crontab -u username -l
platform
sumber
1
Solusi ini berhasil untuk saya. Varian yang secara mengejutkan tidak berhasil bagi saya adalah:sudo crontab -u username -e
Andrew Miner
7

Saya mengalami masalah ini sekarang. Saat mencoba menyelesaikan masalah, saya dirujuk di sini dari Google. Bagaimanapun, ini adalah bagaimana saya menyelesaikannya.

menggunakan

crontab -e

yang telah Anda lakukan dengan benar.

Tekan 'i' untuk memasukkan cronjob Anda. Sebagai contoh,

1 * * * * / Pengguna / Wang / Dokumen /ab.com com

~

Ingatlah untuk menekan kembali setelah garis. Jika Anda tidak menekan kembali itu akan menjadi seperti ini

1 * * * * / Pengguna / Wang / Dokumen /ab.com com

Tekan ESC dan ketik: wq untuk menyimpan dan keluar dari file. Seharusnya tertulis "crontab: menginstal crontab baru"

Saya menyadari bahwa jika Anda tidak menekan kembali setelah baris Anda, itu tidak akan menyelamatkan semuanya.

Semoga ini bisa membantu.

Richard Wong
sumber
Terima kasih. Saya terus keluar dengan :q!sementara solusi Anda :wqmembuat perbedaan besar.
KeitelDOG
1
Selamat datang. :q!memungkinkan Anda untuk berhenti tanpa menyimpan saat :wqmenulis ke file sebelum berhenti.
Richard Wong
Saya mengejar perintah VIM, jadi sekarang saya tahu banyak hal yang seharusnya saya ketahui!
KeitelDOG
1

Menutup jendela terminal tidak akan membuat crontab menghemat.

Karena menggunakan vim untuk membuat file, cari cara menggunakan VIM dan pergi dari sana.

launchd adalah metode (Apple) pilihan dalam 10.5 dan 10.6, tetapi Anda tidak bertanya tentang itu, hanya bagaimana membuat crontab dibuat.

eric.s
sumber
1

Jendela yang ditampilkan adalah editor vi. Pada sistem unix tradisional, vi adalah editor default; sepertinya Mac OS X telah mempertahankan tradisi itu.

Setel variabel environment EDITORdan VISUALke nama (path lengkap, jika tidak ada $PATH) dari editor favorit Anda. Misalnya

export EDITOR=emacs VISUAL=emacs
crontab -e

Pengaturan ini harus masuk ke Anda ~/.profile(dengan asumsi bahwa Mac OS X tidak membaca file itu ketika Anda login; jika ada cara OSX mendefinisikan variabel lingkungan untuk seluruh sesi, Anda dapat mendefinisikannya di sana).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
0

Ini solusi saya: pertama-tama modifikasi editor Anda. export EDITOR=vim lalu modifikasi .vimrc autocmd filetype crontab setlocal nobackup nowritebackup itu akan berfungsi.

Pegasus
sumber
Apa fungsinya? Saya akan sangat waspada tentang perubahan file konfigurasi pada kata-begitu dari beberapa orang asing anonim di interent yang bahkan tidak menjelaskan apa yang seharusnya dilakukan perubahan.
David Richerby
Maaf soal itu. Saya telah memenuhi masalah ini sebelumnya, lalu saya google mendapatkan metode ini, tetapi saya tidak dapat menemukan posting asal. Jadi saya hanya memposting metode ini, itu berhasil untuk saya. Dan Anda juga dapat menggunakan metode ini di Google untuk mengetahui mengapa ini berhasil? Lain kali saya akan meningkatkan jawaban saya. Maaf untuk bahasa Inggris saya yang buruk.
Pegasus