Cron? Luncurkan? iCal ??
Jika ya, bagaimana caranya?
Cron? Luncurkan? iCal ??
Jika ya, bagaimana caranya?
Jawaban:
Untuk referensi, ketiga opsi akan bekerja. Namun opsi iCal memiliki keterbatasan lebih dari yang lain.
(Ada GUI untuk mengedit cron dan launchd seperti yang disebutkan dalam jawaban lain)
Cron adalah yang paling lurus ke depan dan terkenal dan ada banyak tutorial yang tersedia. Catatan Coles adalah menambahkan baris terakhir dari bawah ke crontab Anda (baik dengan mengedit /etc/crontab
atau menggunakan crontab
pada baris perintah):
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
Di Mac OS X, cron
sebenarnya telah diganti oleh launchd
tetapi launchd
kompatibel dengan yang cron
berarti Anda masih dapat menggunakan cron
tetapi sebenarnya launchd
melakukan semua pekerjaan.
Jika Anda ingin menggunakan, launchd
Anda juga ingin memeriksa pertanyaan-pertanyaan lain di sini di Super User: (mis. Bagaimana cara menjalankan perintah launchd sebagai root? ) Tentang di mana Anda ingin menyimpan file konfigurasi Anda (file plist) ketika dijalankan tergantung pada direktori tempat penyimpanan dan bagaimana memuatnya (mis. apakah Anda menggunakan sudo atau tidak) - mirip dengan cron.
Contoh menjalankan daftar peluncuran harian (pastikan file dan labelnya sama - minus daftar untuk label) berikut - skrip ini dijalankan setiap hari pada pukul 3 lewat tengah malam:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
Perlu juga dicatat bahwa tugas launchd jika mereka dijadwalkan ketika komputer sedang tidur atau mati, mereka akan berjalan ketika komputer menjadi tersedia lagi (menyalakan atau membangunkannya) - meskipun hanya sekali tidak peduli berapa hari itu mungkin memiliki telah. Sunting: Saya baru saja berada di dokumen Apple yang mengatakan bahwa jika mesin mati, maka Anda akan kehilangan acara peluncuran apa pun selama waktu itu, (skrip Anda tidak akan diluncurkan saat startup), (sleep tidak mengaktifkan skrip saat bangun)
Pilihan lain adalah menggunakan " at " (periksa halaman manual dengan "man at"). Script dapat menjadwal ulang dengan:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(gunakan "+ 10 menit" alih-alih "besok" untuk menjalankannya setiap 10 menit; untuk berhenti menjadwalkan, cukup lakukan "at -l" untuk mendaftar id pekerjaan yang dijadwalkan dan kemudian "at -r id " untuk menghapus pekerjaan)
Anda mungkin harus memulai daemon terkait (atrun) terlebih dahulu dengan (lihat https://superuser.com/a/43680 ):
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Keuntungan: perbaikan cepat, tidak diperlukan sudo / akses root, pola jadwal yang rumit dan mudah Kerugian: bukan metode penjadwalan standar untuk OS X (yang diluncurkand)
launchd
adalah cara untuk pergi di bawah OS X.
crontab -e
, itu akan menjatuhkan Anda ke editor teks berbasis terminal pada file yang akan menjadi crontab pribadi Anda ketika Anda menyimpannya.
LaunchControl adalah GUI lain untuk launchd / launchctl. Sementara alternatif yang disebutkan oleh orang lain sangat mampu meluncurkan skrip setiap hari, dengan LaunchControl Anda dapat mengkonfigurasi jadwal yang rumit (seperti "sekali setiap hari kerja, pada akhir pekan setiap jam antara pukul 14:00 dan 20:00"). Juga (AFAIK) satu-satunya alat yang benar-benar memvalidasi pekerjaan. Jika suatu pekerjaan tidak berjalan seperti yang diharapkan, itu akan menunjukkan alasannya.
Ini gratis untuk dicoba selama yang Anda inginkan.
cron
jika Anda google untuk itu.Tergantung pada apa yang Anda inginkan: skrip iCal hanya akan dieksekusi jika Anda masuk, cron
mengeksekusi skrip tanpa login. Saya tidak tahu apakah iCal mengeksekusi skrip jika Mac dihidupkan pada saat skrip seharusnya memiliki telah dieksekusi. cron
sedang melakukan ini.
Pembaruan: Anda dapat memeriksa beberapa aplikasi di Mac OS X App Store yang melakukan ini:
Lingon juga tampaknya tersedia, tergantung pada OS yang Anda jalankan.
Jika Anda ingin mencoba yang GRATIS, saya akan menyarankan Tugas Hingga Fajar
Berikut ini adalah utilitas sederhana dan gratis untuk menghasilkan XML plist:
http://www.gieson.com/Library/projects/utilities/launcha/
Dengan utilitas ini tidak perlu menginstal program, cukup simpan hasilnya ke folder Library / LaunchAgents Anda.
RunAtStart
disetel ke false (kecuali jika Anda menginginkannya benar). Saya menghabiskan satu jam mencari tahu mengapa Finder saya akan membeku dan menghentikan desktop dari memuat saat boot. Penonaktifan RunAtStart
tidak mengganggu jadwal tetap.
Saya selalu menggunakan Lingon untuk ini, tetapi sepertinya tidak dikembangkan. Anda dapat mencoba Crontooie , tetapi saya tidak pernah menggunakannya secara pribadi. Atau cukup edit file crontab di terminal.
sp@mactop ~ $ crontab -l
*/5 * * * * /usr/local/bin/cinco.sh
sp@mactop ~ $ cat /usr/local/bin/cinco.sh
#!/bin/sh
....cut....
sp@mactop ~ $
... perintah apa pun yang Anda masukkan untuk ".... cut ...." akan dijalankan setiap lima menit.
30 tahun kemajuan, dan 'cron' masih merupakan penjadwal favorit saya.
-C
Jika acara kalender memenuhi kebutuhan Anda, aplikasi Automator bawaan juga memungkinkan Anda membuat Alarm Kalender yang dipicu oleh acara kalender. Anda dapat menggunakan beberapa tindakan berbasis UI bawaan untuk melakukan apa yang Anda inginkan, atau Anda juga dapat menjalankan beberapa aplikasi atau kustom AppleScript, JavaScript, atau skrip shell.