Bagaimana cara menjalankan pekerjaan cron di Mac?

12

Bagaimana saya bisa membuat Mac saya (menjalankan OS terbaru) melakukan tugas secara otomatis sekali sehari? Sebagai contoh, saya ingin memilikinya secara otomatis men-download salinan ini open source geometri aljabar buku sekali sehari. Saya punya perasaan bahwa beberapa kombinasi wget dan cron harus bekerja, tetapi, setelah googling dan membaca dokumentasi cron, saya tidak bisa membuatnya bekerja dengan benar.

David Zureick-Brown
sumber
2
Saya sarankan Anda tidak menggunakan Crontab dan sebaliknya belajar menggunakan Launchd seperti yang sudah disarankan.
Martin Marconcini

Jawaban:

9

Saya pikir dalam OS X Anda harus menggunakan launchctluntuk "cron jobs".
Tetapi sebaliknya tugas Anda seharusnya mudah dilakukan dengan cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Ini harus dijalankan setiap hari pada pukul 23:55

Memperbarui

Anda harus menentukan lokasi keluaran WGET dengan -O /path/to/file

deiga
sumber
2
Jika menggunakan launchd, lihat apple.stackexchange.com/questions/3030/...
2
Anda tidak perlu sudo. Pengguna individu dapat memiliki crontab mereka sendiri
Doug Harris
6

Daemon cron dapat diaktifkan dengan sederhana:

sudo touch /private/etc/crontab

Maka disarankan untuk memasukkan path lengkap dari / usr / local / bin / wget (atau di mana pun ia tinggal). Cron tidak tahu $ PATH pengguna Anda. Semoga ini bisa membantu.


sumber
5

Anda dapat menggunakan Cronnix yang merupakan antarmuka grafis gratis untuk cron:

http://www.macupdate.com/app/mac/7486/cronnix/

nuc
sumber
1
cronnix telah dihentikan secara resmi di hulu. Mungkin berhenti bekerja dengan benar (atau sama sekali) di versi terbaru dari macOS.
Andrii Abramov
4

Jika Anda menemukan sintaks baris perintah (dll) terlalu membingungkan / arcane, Anda dapat menggunakan alat GUI untuk melihat / mengedit / membuat pekerjaan ini.

Di masa lalu saya telah menggunakan Lingon , yang telah tersedia di Mac App Store sekarang juga. Saya tidak perlu menggunakannya terlalu sering, tetapi sangat berguna ketika saya melakukannya!

robsoft
sumber
1

Solusi yang lebih elegan (daripada cron) adalah menggunakan notifikasi iCal + Applescript.

Pertama, luncurkan AppleScript Editor (terletak di bawah / Aplikasi / Utilitas) dan rekatkan kode berikut:

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

Simpan skrip dan keluar dari editor applescript.

Buka iCal Anda dan buat acara baru untuk hari ini, atur waktu yang Anda inginkan, pilih "repeat: Every day" dan sebagai alarm "Run script" dan pilih applescript Anda.

Jika Anda ingin diberitahu untuk setiap unduhan, Anda dapat menambahkan alarm lain dengan "Pesan dengan Suara", "pada tanggal".

nuc
sumber
1

Saya merekomendasikan Macaroni . Keuntungannya adalah bahwa ketika Anda mengatur pekerjaan untuk dijalankan sekali sehari, itu akan bekerja setiap kali komputer Anda hidup, terlepas dari waktu. Jadi Anda tidak akan kehilangan pekerjaan karena komputer mati pada waktu yang ditentukan.

Macaroni adalah alat yang menangani perawatan rutin untuk Mac OS X, termasuk proses perbaikan hak Mac OS X serta pemeliharaan gaya Unix. Anda bisa melakukan ini sendiri, tetapi tidakkah Anda memiliki hal-hal yang lebih menarik untuk dilakukan dengan waktu Anda?

amorfis
sumber