Làm cách nào để thiết lập công việc định kỳ trên OS X để chạy lệnh curl vào một thời điểm cụ thể mỗi ngày?


20

Tôi có một lệnh CURL tôi muốn chạy mỗi ngày vào lúc 3 giờ sáng, nhưng tôi không chắc chắn về cách thiết lập nó và các hướng dẫn đều kỳ lạ.

Giả sử tôi có nhiều kinh nghiệm về thiết bị đầu cuối / bash, nhưng tôi chưa bao giờ thiết lập một cron trước đây.

Công việc định kỳ có thể đánh thức máy tính của tôi không, ngay cả khi nó đang ngủ và nắp được đóng lại (macbook pro), chỉ cần chạy lệnh này một lần và sau đó đặt nó trở lại trạng thái ngủ?

Làm thế nào để tôi thiết lập nó một trong hai cách?

Câu trả lời:


22

Bắt đầu bằng cách chạy lệnh:

crontab -e

Điều này sẽ mở crontab cho người dùng của bạn trong trình soạn thảo văn bản. Cron sử dụng một ký hiệu cụ thể cho các công việc theo lịch trình. Định dạng bên dưới hiển thị các trường cho mục nhập crontab của người dùng (cần được phân tách bằng các tab).

min  hour  day_of_month  month  day_of_week  command

Để lên lịch lệnh curl chạy vào lúc 3 giờ sáng hàng ngày, bạn có thể chèn dòng:

0  3  *  *  *  curl args...

Lưu ý cách phút và giờ tương ứng với 3 giờ sáng (ghi chú bên: cron sử dụng định dạng thời gian 24 giờ, không sáng hoặc chiều). Các dấu sao theo sau mỗi ngày trong tháng, mỗi tháng, mỗi ngày trong tuần.

Cron sẽ không thể đánh thức máy tính của bạn khỏi giấc ngủ nhưng bạn có thể thấy bài đăng này hữu ích để đánh thức osx khỏi giấc ngủ


1
Khi tôi làm điều này crontab -etôi thấy điều này trong thiết bị đầu cuối của mình: $ crontab -e crontab: no changes made to crontabvà sau đó nó sẽ mở trình soạn thảo văn bản của tôi với tệp crontab.some-random-stringtừ thư mục /tmp. Khi tôi chỉnh sửa nó và lưu nó, không có gì xảy ra trong thiết bị đầu cuối của tôi. Nếu tôi làm crontab -l, công việc tôi vừa nhập không xuất hiện. Sau đó, nếu tôi làm crontab -elại, nó sẽ mở một khoảng trống khác crontab.some-random-string. Tôi cũng đã kiểm tra crontab đầu tiên tôi đã lưu bằng cách đặt thời gian là 2 phút kể từ khi tôi lưu và cron không bao giờ chạy. Điều gì có thể xảy ra?
marcamillion

Trình soạn thảo văn bản nào đang mở khi bạn chạy 'crontab -e'?
diametralpitch

Một mặc định của tôi , atom. Đó là những gì khởi chạy khi tôi mở bất cứ thứ gì cần chỉnh sửa trong thiết bị đầu cuối của mình. Đây là những gì tôi có trong ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion

Hmm, nếu bạn tự chạy nguyên tử từ dòng lệnh, nó có chờ nguyên tử thoát ra không trước khi nhắc lệnh khác (nếu không, bạn có thể muốn thử một trình soạn thảo văn bản khác).
Adam Luchjenbroers

@AdamLuchjenbroers Tôi không chắc là tôi hoàn toàn hiểu câu hỏi của bạn. Tôi sử dụng nguyên tử cho tất cả các chỉnh sửa mã của tôi. Vì vậy, nếu tôi muốn chỉnh sửa bất kỳ tập tin, tôi chỉ cần làm atom .trong thư mục hoặc atom <filepath>.
marcamillion

0

nếu bạn muốn làm theo cách GUI, tôi có thể giới thiệu bạn CronniX từ roaredapps https://roaredapps.com/app/cronnix


Cảm ơn vì mẹo đó .... nhưng tôi nghĩ rằng tôi thích làm thủ công hơn ở dòng lệnh hoặc thông qua trình soạn thảo văn bản để tìm hiểu :)
marcamillion
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.