Panduan Lengkap Penjadwalan Tugas Otomatis di macOS (Terminal: pmset, cron, launchd)
macOS memiliki sistem penjadwalan bawaan yang sangat powerful, bisa digunakan untuk:
- Menjadwalkan shutdown, sleep, restart
- Menjalankan skrip shell atau aplikasi
- Menjadwalkan backup otomatis
- Mengatur task mingguan atau harian
1. Jadwalkan Shutdown / Sleep / Startup via pmset
A. Shutdown Otomatis Harian
Bash:
sudo pmset repeat shutdown MTWRFSU 23:00:00
- MTWRFSU: Senin hingga Minggu
- 23:00:00: Jam 11 malam
B. Jadwal Startup atau Wake
Bash:
sudo pmset repeat wakeorpoweron MTWRF 07:00:00
C. Lihat atau Hapus Jadwal pmset
Bash:
pmset -g sched # Lihat semua jadwal aktif
sudo pmset repeat cancel # Hapus semua jadwal
2. Penjadwalan Tugas dengan cron
A. Buka dan Edit Cron Job
Bash:
crontab -e
B. Contoh Penjadwalan:
Bash:
# Shutdown otomatis jam 23:00
0 23 * * * sudo shutdown -h now
# Jalankan skrip backup setiap Minggu jam 2 pagi
0 2 * * 0 /Users/namauser/backup.sh
# Restart setiap hari pukul 01:00
0 1 * * * sudo shutdown -r now
3. Penjadwalan Lebih Kuat dengan launchd (launchctl)
A. Struktur File .plist
Buat file .plist di:
Bash:
~/Library/LaunchAgents/com.user.shutdown.plist
B. Contoh Isi shutdown.plist
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.shutdown</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/shutdown</string>
<string>-h</string>
<string>now</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>23</integer>
<key>Minute</key><integer>0</integer>
</dict>
</dict>
</plist>
C. Aktifkan Jadwal
Bash:
launchctl load ~/Library/LaunchAgents/com.user.shutdown.plist
D. Nonaktifkan / Reload
Bash:
launchctl unload ~/Library/LaunchAgents/com.user.shutdown.plist
4. Jalankan Skrip Otomatis
Misal backup.sh berisi:
Bash:
#!/bin/bash
tar -czf /Users/namauser/Backup/backup-$(date +%F).tar.gz /Users/namauser/Documents
Bisa dijadwalkan via:
- cron
- launchd
- Task GUI: Automator (opsional)
5. Alternatif GUI: Automator + Calendar
- Buka Automator > New Document > Application
- Tambahkan Action: “Run Shell Script”
- Masukkan perintah, contoh:
Bash:shutdown -h now - Simpan sebagai aplikasi, lalu:
- Buka Calendar
- Buat event dan tambahkan aplikasi tersebut sebagai alarm → Custom → Open File
Tabel Ringkasan Tools
| Tugas Otomatis | Perintah | Keterangan |
|---|---|---|
| Shutdown harian | pmset | Built-in, tanpa script |
| Jalankan skrip harian | cron | Tradisional Unix scheduler |
| Shutdown mingguan | launchd | Lebih fleksibel dari cron |
| Wake/sleep otomatis | pmset | Sangat cocok untuk MacBook |
| GUI Penjadwal | Automator + Calendar | Untuk pengguna awam / visual |
Penutup
macOS menyediakan tiga cara powerful untuk penjadwalan:
- pmset → untuk shutdown/startup/sleep
- cron → untuk tugas berulang (legacy tapi masih aktif)
- launchd → fleksibel, cocok untuk dev & admin
- Automator/Calendar → GUI friendly
Kamu bisa menggabungkan semuanya sesuai kebutuhan:
misalnya backup pakai cron, lalu shutdown otomatis pakai pmset.