Menjalankan skrip shell di waktu tertentu
Untuk menjalankan skrip shell pada waktu tertentu, gunakan launchd
atau cron
.
Menjadwalkan tugas dengan launchd
Gunakan
launchd
, bukancron
untuk menjadwalkan tugas. Denganlaunchd
, jika tugas dilewati karena komputer mati atau tidur, tugas akan ditambahkan ke antrean saat komputer kembali online.Untuk menggunakan
launchd
untuk menjadwalkan pekerjaan berbasis waktu, gunakan kunciStartCalendarInterval
atauStartInterval
.Untuk informasi lebih lanjut mengenai
launchd
, lihat halaman man.
Menggunakan cron untuk menjadwalkan tugas
Daemon cron
mengeksekusi perintah yang dijadwalkan yang ditentukan di file crontab. Daemon cron
mencari folder /usr/lib/cron/tabs/ untuk file crontab dengan nama mengikuti akun di /etc/passwd, dan memuat file ke dalam memori. Daemon cron
juga mencari folder /etc/crontab/ untuk file crontab dengan format yang berbeda. cron
lalu bersiklus setiap menit, memeriksa file crontab yang disimpan dan memeriksa tiap perintah untuk melihat jika dapat dijalankan di menit ini.
Saat perintah dieksekusi, output dikirimkan ke pemilik file crontab atau pengguna lain yang namanya terdapat pada variabel lingkungan MAILTO pilihan di crontab.
Anda menggunakan alat crontab
untuk menginstal, menghapus instalasi, atau membuat daftar tabel yang digunakan untuk membuat drive daemon cron
. Pengguna dapat memiliki file crontab mereka sendiri.
Untuk mengonfigurasi file crontab, gunakan perintah
crontab -e
. Tindakan ini membuka file crontab kosong di mode edit.Berikut adalah contoh file crontab:
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
Di contoh ini, entri pertama memperbaiki izin disk untuk volume MacHD pukul 18.30 setiap hari, Senin hingga Jumat:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
Entri kedua menjadwalkan operasi perbaikan volume untuk dijalankan pukul 23.50 setiap Minggu:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD