Làm cách nào để chạy một công việc định kỳ trên máy Mac?


12

Làm cách nào để máy Mac của tôi (chạy HĐH gần đây nhất) tự động thực hiện một tác vụ mỗi ngày một lần? Ví dụ, tôi muốn nó tự động tải xuống một bản sao của sách giáo khoa hình học đại số nguồn mở này mỗi ngày một lần. Tôi có cảm giác rằng một số sự kết hợp giữa wget và cron sẽ hoạt động, nhưng, sau khi googling và đọc tài liệu về cron, tôi không thể làm cho nó hoạt động tốt.


2
Tôi khuyên bạn không nên sử dụng Crontab và thay vào đó hãy học cách sử dụng Launchd như đã đề xuất.
Martin Marconcini

Câu trả lời:


9

Tôi nghĩ trong OS X bạn nên sử dụng launchctlcho "cron jobs".
Nhưng nếu không, nhiệm vụ của bạn phải dễ dàng thực hiện với một cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Điều này sẽ chạy hàng ngày lúc 23:55

Cập nhật

Bạn nên chỉ định vị trí đầu ra của WGET với -O /path/to/file


2
Nếu sử dụng launchd, hãy xem apple.stackexchange.com/questions/3030/iêu

2
Bạn không nhất thiết cần sudo. Người dùng cá nhân có thể có crontabs của riêng mình
Doug Harris

6

Trình nền cron có thể được kích hoạt bằng một cách đơn giản:

sudo touch /private/etc/crontab

Sau đó, bạn nên nhập toàn bộ đường dẫn / usr / local / bin / wget của bạn (hoặc bất cứ nơi nào nó sống). Cron không biết về $ PATH của người dùng của bạn. Hy vọng nó giúp.



4

Nếu bạn thấy cú pháp dòng lệnh (v.v.) quá khó hiểu / phức tạp, bạn có thể sử dụng công cụ GUI để xem / chỉnh sửa / tạo các công việc này.

Trước đây tôi cũng đã sử dụng Lingon , cũng đã có sẵn trên Mac App Store. Tôi không cần phải sử dụng nó rất thường xuyên, nhưng nó rất hữu ích khi tôi làm!


1

Một giải pháp thanh lịch hơn (hơn cron) là sử dụng thông báo iCal + Applescript.

Đầu tiên, khởi chạy AppleScript Editor (nằm dưới / Ứng dụng / Tiện ích) và dán đoạn mã sau:

set the destination_file to ("~/Downloads/book.pdf")

set the contentLink to "http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf"

tell application "URL Access Scripting"
    download contentLink to destination_file replacing yes
end tell

Lưu tập lệnh và thoát khỏi trình soạn thảo applescript.

Mở iCal của bạn và tạo một sự kiện mới cho ngày hôm nay, đặt thời gian bạn muốn, chọn "lặp lại: Mỗi ngày" và làm báo thức "Chạy tập lệnh" và chọn bản thảo của bạn.

Nếu bạn muốn thông báo cho mỗi lần tải xuống, bạn có thể thêm một báo thức khác với "Tin nhắn có âm thanh", "đúng ngày".


1

Tôi khuyên bạn nên Macaroni . Ưu điểm của nó là khi bạn thiết lập một công việc để chạy một lần một ngày, nó sẽ chạy bất cứ khi nào máy tính của bạn được bật, bất kể thời gian. Vì vậy, bạn sẽ không bỏ lỡ một công việc vì máy tính đã tắt vào thời gian quy định.

Macaroni là một công cụ xử lý bảo trì thường xuyên cho Mac OS X, bao gồm quá trình đặc quyền sửa chữa Mac OS X cũng như bảo trì theo kiểu Unix. Bạn có thể tự làm điều này, nhưng bạn không có nhiều điều thú vị hơn để làm với thời gian của mình?

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.