Mac crontab không bao giờ được tạo ra


12

Tôi đang cố gắng thiết lập một cron trên máy mac của mình, nhưng có vẻ như nó không bao giờ hoàn thành việc tạo một crontab cho người dùng của tôi. Tôi mở terminal và nhập:

$ crontab -e 

Trả về cái này:

crontab: no crontab for jjmay - using an empty one




















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

Và sau đó nó đợi ở đó cho đến khi tôi đóng cửa sổ, tôi đã để nó đi trong chừng 20 phút. Tôi mở một cửa sổ đầu cuối khác để kiểm tra việc tạo crontab của tôi và tôi không nhận được gì.

$ crontab -l 
crontab: no crontab for jjmay

Bất kỳ ý tưởng nào về lý do tại sao tôi không thể tạo ra điều này, hoặc nếu tôi có thể tự tạo crontab của mình để tôi có thể chỉnh sửa nó?


Đã được một lúc kể từ khi tôi nhắn tin với các tệp crontab trong OS X, nhưng tôi đoán là: "/tmp/crontab.rBdeP6yv1U" 0L, 0C cho biết bạn không ở trong thư mục chính xác hoặc không có quyền viết vào thư mục đó. Thư mục mà bạn đang ở khi gõ "crontab -e" là gì? JDB
JDB

@JDB cảm ơn bạn. Tôi không nhận thức được rằng tôi sẽ phải ở trong một thư mục cụ thể. Tôi chỉ ở trong thư mục mặc định của mình khi tôi mở thiết bị đầu cuối, chỉ là thư mục Người dùng mặc định của tôi. / Người dùng / <my_username> /
Jage

Câu trả lời:


22

Đây không phải là về trình soạn thảo, đó là về quyền của người dùng. Đầu tiên trở thành root:

sudo su -

Sau đó chỉnh sửa crontab cho người dùng thích hợp:

crontab -u username -e

Sau khi lưu tệp, có thể xác minh rằng nó đã lưu đúng cách bằng cách chạy này:

crontab -u username -l

1
Giải pháp này đã làm việc cho tôi. Một biến thể đáng ngạc nhiên không làm việc với tôi là:sudo crontab -u username -e
Andrew Miner

7

Tôi đã gặp vấn đề này ngay bây giờ. Trong khi cố gắng giải quyết vấn đề, tôi đã được giới thiệu ở đây từ Google. Dù sao, đây là cách tôi giải quyết nó.

sử dụng

crontab -e

mà bạn đã làm đúng

Nhấn 'i' để chèn cronjob của bạn. Ví dụ,

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

~

Nhớ nhấn return sau dòng. Nếu bạn không nhấn trở lại, nó sẽ như thế này

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

Nhấn ESC và gõ vào: wq để lưu và thoát tệp. Nó sẽ nói "crontab: cài đặt crontab mới"

Tôi nhận ra rằng nếu bạn không nhấn return sau dòng của bạn, nó sẽ không lưu toàn bộ.

Hy vọng nó giúp.


Cảm ơn. Tôi tiếp tục thoát ra :q!trong khi giải pháp của bạn với :wqsự khác biệt hoàn toàn.
KeitelDOG

1
Chào mừng bạn :q!cho phép bạn thoát mà không lưu trong khi :wqghi vào tệp trước khi thoát.
Richard Wong

Tôi bắt kịp với các lệnh VIM, vì vậy bây giờ tôi biết rất nhiều điều mà tôi phải biết!
KeitelDOG

1

Đóng cửa sổ terminal sẽ không giúp crontab lưu lại.

Vì nó đang sử dụng vim để tạo tệp, hãy tìm cách sử dụng VIM và đi từ đó.

launchd là phương thức ưa thích (Apple) trong 10.5 và 10.6, nhưng bạn không hỏi về điều đó, chỉ là làm thế nào để tạo ra crontab.


1

Cửa sổ nó đang hiển thị là một trình soạn thảo vi. Trên các hệ thống unix truyền thống, vi là trình soạn thảo mặc định; Có vẻ như Mac OS X đã giữ truyền thống đó.

Đặt các biến EDITORVISUALmôi trường thành tên (đường dẫn đầy đủ, nếu không có $PATH) trong trình chỉnh sửa yêu thích của bạn. Ví dụ

export EDITOR=emacs VISUAL=emacs
crontab -e

Cài đặt này sẽ đi vào ~/.profile(giả sử rằng Mac OS X sẽ đọc tệp đó khi bạn đăng nhập; nếu có cách OSX xác định các biến môi trường cho toàn bộ phiên, bạn có thể xác định chúng ở đó).


0

Đó là giải pháp của tôi: đầu tiên sửa đổi trình soạn thảo của bạn. export EDITOR=vim sau đó sửa đổi .vimrc autocmd filetype crontab setlocal nobackup nowritebackup nó sẽ hoạt động.


Cái này làm gì Đối với một người sẽ rất cảnh giác về việc thay đổi các tập tin cấu hình theo cách nói của một người lạ ẩn danh nào đó, người thậm chí không giải thích những thay đổi được cho là sẽ làm gì.
David Richerby

Xin lỗi vì điều đó. Tôi đã gặp vấn đề này trước đây, sau đó tôi google nó có được phương pháp này, nhưng tôi không thể tìm thấy bài gốc. Vì vậy, tôi chỉ đăng phương pháp này, nó làm việc cho tôi. Và bạn cũng có thể google phương pháp này để biết tại sao nó hoạt động? Lần sau tôi sẽ cải thiện câu trả lời của mình. Xin lỗi vì tiếng Anh của tôi không tốt.
Pegasus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.