Materi
Kelas Bash Lanjutan membahas crontab milik pengguna: lima kolom waktu lalu perintah, disunting dengan crontab -e. Tugas milik sistem ditaruh di /etc/crontab atau di berkas dalam folder /etc/cron.d. Bedanya satu kolom: sesudah lima kolom waktu ada nama pengguna yang menjalankan perintah, karena berkas sistem tidak dimiliki satu pengguna. Baris 0 1 * * 6 www-data /usr/local/bin/bersih-unggahan.sh menjalankan skrip pukul 01.00 setiap Sabtu sebagai www-data.
systemd punya jalan lain: timer. Satu tugas butuh dua berkas: nama.timer berisi kapan, dan nama.service berisi apa yang dijalankan; timer mengaktifkan service yang namanya sama kecuali akhirannya. Bagian [Timer] memuat OnCalendar= berbentuk Hari Tahun-Bulan-Tanggal Jam:Menit:Detik, misalnya Mon..Fri *-*-* 18:00:00 untuk pukul 18.00 Senin sampai Jumat; daily sama dengan *-*-* 00:00:00. Bila hari dan tanggal sama-sama ditulis, keduanya harus cocok, berbeda dengan crontab yang cukup salah satu.
# /etc/systemd/system/laporan-mingguan.timer
[Unit]
Description=Kirim laporan mingguan
[Timer]
OnCalendar=Mon *-*-* 06:00:00
Persistent=true
[Install]
WantedBy=timers.targetPersistent=true menyimpan waktu terakhir tugas berjalan, sehingga tugas yang terlewat saat server mati langsung dijalankan begitu server menyala; nilai bawaannya false dan hanya berlaku bersama OnCalendar. Timer dinyalakan dengan systemctl enable --now nama.timer, bukan service-nya, dan systemctl list-timers menampilkan jadwal berikutnya. Keluaran tugas masuk jurnal, sehingga dibaca dengan journalctl -u nama.service.