Press ESC to close

Menggunakan systemd Timer Sebagai Pengganti Cron

WhatsAppTelegramFacebookXThreadsCopy Link

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.service

Isi dengan:

[Unit]
Description=Backup otomatis harian

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh

Keterangan:

  • 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.timer

Isi dengan:

[Unit]
Description=Menjalankan backup harian setiap jam 2 pagi

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

Penjelasan:

  • OnCalendar → format jadwal (mirip cron). *-*-* 02:00:00 berarti 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.timer

Cek status timer:

systemctl list-timers --all

Anda 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.service

Cek log eksekusi:

sudo journalctl -u backup.service

Jika 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=true

Dengan pengaturan ini, service akan berjalan setiap jam, dimulai 10 menit setelah boot pertama.


Perbandingan Cron vs systemd Timer

FiturCronsystemd Timer
Integrasi LogTidak otomatisOtomatis dengan journalctl
Monitoring StatusTerbatassystemctl list-timers
Ketahanan saat rebootTidak fleksibelBisa Persistent=true
Format WaktuCron-styleOnCalendar dan durasi
Dependency SystemTidak adaMendukung 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.

WhatsAppTelegramFacebookXThreadsCopy Link