
Daftar Isi
Apakah Anda pernah menggunakan cron job untuk menjadwalkan tugas otomatis di Linux, lalu merasa sulit mengelola atau memantau statusnya? Banyak pengguna Linux—terutama pemula—mengandalkan cron untuk menjalankan skrip terjadwal. Namun, ketika sistem semakin kompleks, cron bisa terasa terbatas dan sulit dikontrol.
Di sinilah systemd timer hadir sebagai solusi modern. Dengan integrasi penuh ke dalam sistem systemd, fitur ini memungkinkan Anda menjadwalkan tugas secara lebih fleksibel, mudah dipantau, dan memiliki kontrol yang jauh lebih baik dibandingkan cron tradisional.
Dalam artikel ini, Anda akan mempelajari:
- Perbedaan utama antara cron dan systemd timer.
- Cara membuat dan mengaktifkan systemd service serta timer.
- Langkah-langkah konfigurasi lengkap dengan contoh nyata.
- Tips agar jadwal otomatis Anda berjalan stabil tanpa error.
Langkah-Langkah Mengkonfigurasi systemd Timer
Berikut panduan langkah demi langkah untuk membuat dan mengaktifkan systemd timer:
1. Buat File Service (.service)
Pertama, Anda perlu membuat unit service yang akan dijalankan oleh timer.
Misalnya, kita ingin menjalankan skrip /usr/local/bin/backup.sh.
Buat file:
sudo nano /etc/systemd/system/backup.serviceIsi dengan:
[Unit]
Description=Backup otomatis harian
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.shKeterangan:
Type=oneshot→ service hanya dijalankan sekali setiap kali dipanggil.ExecStart→ menentukan perintah atau skrip yang akan dijalankan.
2. Buat File Timer (.timer)
Sekarang, buat file timer untuk menjadwalkan kapan service dijalankan.
sudo nano /etc/systemd/system/backup.timerIsi dengan:
[Unit]
Description=Menjalankan backup harian setiap jam 2 pagi
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.targetPenjelasan:
OnCalendar→ format jadwal (mirip cron).*-*-* 02:00:00berarti setiap hari pukul 02:00.Persistent=true→ jika sistem mati pada waktu seharusnya, tugas akan dijalankan saat sistem hidup kembali.
3. Aktifkan dan Jalankan Timer
Setelah membuat dua file di atas, aktifkan timer:
sudo systemctl daemon-reload
sudo systemctl enable --now backup.timerCek status timer:
systemctl list-timers --allAnda akan melihat daftar timer aktif dan waktu eksekusi berikutnya.
4. Menguji Timer Secara Manual
Ingin memastikan service bekerja tanpa menunggu jadwalnya?
Gunakan perintah:
sudo systemctl start backup.serviceCek log eksekusi:
sudo journalctl -u backup.serviceJika skrip berjalan dengan benar, maka konfigurasi timer Anda siap digunakan.
5. Contoh Jadwal Lain (OnBoot dan OnUnitActive)
Selain OnCalendar, systemd timer mendukung berbagai jenis trigger:
- OnBootSec=10min → Jalankan 10 menit setelah sistem menyala.
- OnUnitActiveSec=1h → Jalankan setiap 1 jam sekali setelah terakhir kali aktif.
Contoh kombinasi:
[Timer]
OnBootSec=10min
OnUnitActiveSec=1h
Persistent=trueDengan pengaturan ini, service akan berjalan setiap jam, dimulai 10 menit setelah boot pertama.
Perbandingan Cron vs systemd Timer
| Fitur | Cron | systemd Timer |
|---|---|---|
| Integrasi Log | Tidak otomatis | Otomatis dengan journalctl |
| Monitoring Status | Terbatas | systemctl list-timers |
| Ketahanan saat reboot | Tidak fleksibel | Bisa Persistent=true |
| Format Waktu | Cron-style | OnCalendar dan durasi |
| Dependency System | Tidak ada | Mendukung dependency antar unit |
Kesimpulannya, systemd timer lebih modern, aman, dan terintegrasi, sehingga ideal untuk server masa kini.
Sekarang Anda sudah mengetahui cara membuat dan menjalankan systemd timer di Linux. Dengan langkah-langkah di atas, Anda bisa menggantikan cron secara bertahap dan menikmati kontrol yang lebih baik terhadap tugas otomatis Anda.
Ingin belajar lebih lanjut?
Baca juga: Menggunakan for, while, dan until loop di Bash — agar Anda bisa menulis skrip yang lebih efisien untuk dijalankan lewat timer.
