Systemd tidaklah sebatas software yang berfungsi sebagai init system saja tetapi memiliki sejumlah tool-set lain yang bermanfaat. Salah satunya adalah Systemd unit Timer
.
Unit Timer
berfungsi untuk memicu (trigger) suatu unit systemd lain berdasarkan fungsi waktu. Secara sederhana bisa dipahami sebagai alternatif dari cron
. Fungsi waktu yang dimaksud bisa berupa, namun tidak terbatas pada, interval waktu (tiap menit, tiap jam atau tiap sekian waktu), penjadwalan eksekusi, dan sebagainya.
Sama seperti kebanyakan unit systemd yang lainnya, unit Timer
ini juga memerlukan unit lain seperti unit Service
untuk mengeksekusi sesuatu berdasarkan konfigurasi waktu yang ditentukan. Ketika sistem memasuki waktu yang ditentukan, maka unit Timer
ini perlu dan akan mentrigger unit lain untuk menjalakan seperangkat perintah yang ditentukan.
Membuat Unit Timer
Seperti pada kebanyakan unit systemd, unit ini bisa disimpan secara global di /etc/systemd/system
atau secara terbatas pada lingkup user terkait di ~/.config/systemd/user
.
Dimisalkan ada keperluan untuk menjalankan perintah certbot renew
setiap pekannya menggunakan unit Timer
ini. Maka file yang perlu dibuat adalah:
certbot-renew.timer
|
|
Dengan konfigurasi diatas, maka unit tersebut akan mentrigger unit lain dengan nama yang sama tetapi dengan ekstensi .service
.
Jika ingin memanggil unit lain, definiskan hal tersebut menggunakan Unit=nama-unit.service
pada bagian [Timer]
certbot-renew.service
|
|
Mengaktifkan Unit Timer
Agar semua penambahan atau modifikasi pada unit systemd apapun bisa digunakan, perlu melakukan perintah berikut:
|
|
Kemudian untuk menjalankannya sekaligus membuatnya aktif secara otomatis setiap kali reboot (aktif bukan dalam artian langsung tereksekusi), menggunakan perintah berikut:
|
|
Cukup melakukan enable untuk unit Timer
saja, karena unit certbot-renew.service
akan ditrigger oleh timer tersebut, sehingga tidak perlu di-enable secara tersendiri.
Output yang akan muncul ketika diverifikasi dengan systemctl status certbot-renew.timer
adalah seperti berikut ini:
|
|
Melihat Daftar Timer yang Aktif
Jalankan perintah dibawah ini untuk melihat daftar timer apa saja yang sedang aktif:
|
|
Contoh:
|
|
Menonaktifkan Timer
Sama seperti unit systemd yang lain, unit Timer
bisa dinonaktifkan dengan cara yang sama pula:
|
|
Timer Monotonik
Maksudnya adalah, jenis timer yang tidak berkaitan dengan satuan waktu di dunia nyata (hari, pekan, bulan, tanggal tertentu, dsb). Namun, relatif kepada momen tertentu pada sistem. Seperti, waktu setelah sistem boot, setelah unit aktif, dsb.
Opsi yang bisa digunakan untuk mengatur timer monotonik ini adalah:
|
|
Masing-masing rinciannya bisa dilihat melalui man systemd.timer
.
Contohnya untuk opsi OnBootSec=
, misal diatur menjadi OnBootSec=50s
, maka unit ini akan melakukan trigger 50 detik setelah booting dilakukan.
Penutup
Unit Timer
systemd ini bisa dimanfaatkan sebagai alternatif dari cron
. Salah satunya memiliki kelebihan dan kekurangan dari yang lainnya.
Semoga bermanfaat, barakallahufiikum.