Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Bagaimana (dan Mengapa) Mengganti Pekerjaan cron Dengan Timer systemd

Posted on September 6, 2023

Asal usul cron dimulai pada tahun 1975, di Versi 7 Unix. Keandalannya segera menjadikannya alat favorit untuk menjadwalkan tugas agar dijalankan pada tanggal dan waktu tertentu. Memang benar, sintaksisnya cukup unik. Jika Anda tidak sering menggunakannya, Anda mungkin perlu mencari poin-poin penting setiap kali Anda ingin menjadwalkan pekerjaan.

Dalam jadwal cron, hari dan bulan diberi nomor mulai dari satu. Namun, hari-hari dalam seminggu diberi nomor dari nol hingga enam, untuk hari Minggu hingga Sabtu. Dan pada beberapa sistem, angka tujuh juga berarti hari Minggu. Namun, meskipun unik, ini berhasil.

Manajer layanan systemd menghadirkan lebih dari sekadar pengganti sederhana untuk manajer boot init. Bagian dari apa yang dikirimkannya adalah pengganti cron yang modern, dalam bentuk pengatur waktu systemd. Ini menawarkan lebih banyak fleksibilitas dibandingkan cron, dan tanpa memerlukan utilitas eksternal lainnya. Mereka dibangun langsung ke semua distribusi systemd.

Itu berarti pengatur waktu berperilaku dengan cara yang sama di semua instalasi systemd. Ada banyak versi pengganti cron dan mirip cron. Jika Anda perlu memiliki standarisasi di sejumlah komputer, systemd membuat hidup Anda lebih mudah. Pengatur waktu yang sama akan bekerja dengan cara yang sama pada semuanya. Faktanya, beberapa distribusi berbasis systemd tidak lagi mengirimkan cron sebagai bagian dari penawaran standar mereka. Tidak mengherankan, distribusi turunan Red Hat termasuk Fedora tidak mengirimkan cron, karena systemd adalah inisiatif Red Hat. Arch dan turunannya tidak menyertakan cron, tapi itu mungkin lebih berkaitan dengan mereka yang menyediakan distribusi minimal sehingga Anda mengisi dengan aplikasi yang sesuai. Distribusi lain, seperti Solus, juga tidak melihat perlunya menyertakan cron. Tentu saja, Anda dapat menginstal cron pada distribusi apa pun yang Anda suka, tetapi tidak ada argumen yang kuat untuk melakukannya.

Bagaimana Pengatur Waktu Systemd Bekerja

Dengan pengatur waktu systemd, Anda perlu membuat dua file. Salah satunya adalah file layanan. Saat layanan berjalan, layanan meluncurkan proses untuk Anda. Jadi file layanan perlu mengetahui tentang proses target Anda.

File kedua yang perlu Anda buat adalah file timer. Ini menentukan kapan layanan diluncurkan. Jadi file pengatur waktu perlu mengetahui tentang file layanan Anda.

Pengatur waktu bisa bersifat real-time atau monoton. Pengatur waktu real-time dipicu oleh acara kalender. Pengatur waktu monotonik dipicu pada durasi tertentu setelah kejadian sistem, seperti booting. Entri log ditambahkan ke jurnal sistem untuk kejadian pengatur waktu, yang dapat membantu proses debug.

Anda dapat membuat daftar pengatur waktu di komputer Anda dengan menggunakan opsi status dari perintah systemctl. Beberapa pengatur waktu sistem dibuat secara otomatis, jadi meskipun Anda belum membuat pengatur waktu apa pun, akan ada keluaran ke perintah ini.

systemctl status “*timer”

Setiap deskripsi berisi informasi berikut:

Nama dan deskripsi pengatur waktu, jika ada yang disediakan.

Dimuat: Menampilkan status dimuat. Biasanya pengatur waktu kita dibaca dan dimuat ke dalam memori. Jalur direktori ke file pengatur waktu ditampilkan. Kita mengira pengatur waktu akan “diaktifkan”, namun mungkin akan “dinonaktifkan” untuk sementara jika kita memilih untuk mematikannya. Prasetel vendor menunjukkan apakah, saat pengatur waktu pertama kali dibuat, pengatur waktu disetel ke “aktif” atau “dinonaktifkan”.

Aktif: Menampilkan status aktif, termasuk tanggal dan waktu penghitung waktu diaktifkan. Biasanya, Anda akan melihat pengatur waktu terdaftar sebagai “aktif”, dan “menunggu” untuk waktu dan tanggal peluncuran berikutnya. Sampai: Yang membingungkan, baris ini tidak berlaku untuk pengatur waktu. Kita bisa mengabaikannya.

Trigger: Menampilkan nama proses yang dijalankan oleh timer.

Pemicu: Menunjukkan kapan pengatur waktu akan terpicu berikutnya, dan kapan proses selanjutnya akan diluncurkan. Dokumen: Beberapa pengatur waktu memiliki dokumentasi terkait. Baris ini opsional, dan tidak selalu ada.

Karena pengatur waktu sebenarnya adalah layanan yang dikontrol waktu, kita dapat menggunakan perintah systemctl untuk mengontrolnya.

Membuat Pengatur Waktu sistemd Sederhana

Kata-kata tertulis adalah media statis, sehingga sulit untuk menggambarkan suatu proses yang dipicu pada waktu tertentu. Apa yang akan kita lakukan adalah membuat skrip yang akan diluncurkan oleh pengatur waktu baru kita, dan memintanya menulis stempel waktu ke file log. Itu akan memberi tahu kami bahwa layanan kami berfungsi, dan kapan terakhir kali dipicu.

Kami akan menggunakan perintah tanggal untuk menghasilkan stempel waktu, dan kami akan mengarahkannya ke file bernama “timer.log” di direktori home kami.

Kami akan membuat skrip di direktori “/usr/local/bin/”. Kami menggunakan editor “gedit”, tetapi Anda dapat menggunakan editor mana pun yang Anda suka.

sudo gedit /usr/local/bin/geek-timer.sh

Salin baris ini ke editor Anda, simpan file sebagai “geek-timer.sh ”, dan tutup editor Anda.

#!/bin/bashecho”Timer diaktifkan: $(tanggal)” >> /home/dave/timer.log

Kita harus membuat skrip kita dapat dieksekusi.

sudo chmod +x /usr/local /bin/geek-timer.sh

Mari kita periksa apakah skrip kita berfungsi sebagaimana mestinya.

geek-timer.shcattimer.log

Itu memverifikasi bahwa skrip kita dijalankan seperti yang diharapkan dan memberi stempel waktu ke dalam file “timer.log”.

Sekarang kita’ akan membuat file layanan untuk menentukan layanan yang ingin kita luncurkan ketika pengatur waktu dipicu.

sudo gedit /etc/systemd/system/geek-timer.service

Salin baris ini ke editor Anda, simpan file sebagai “/etc/systemd /system/geek-timer.service”, dan tutup editor Anda.

[Unit]Description=” systemd timer”Requires=geek-timer.timer[Service]Type=simpleExecStart=/usr/local/bin/ geek-timer.shUser=dave

Bagian “[Unit]” berisi dua baris. Baris “Description=” adalah kalimat sederhana yang menyatakan tujuan layanan Anda. Baris “Requires=” menunjukkan bahwa layanan ini bergantung pada file pengatur waktu “geek-timer.timer”. Kami akan membuat file ini selanjutnya.

Ada sedikit lagi di bagian “[Layanan]”. “Type=” adalah “sederhana”, artinya ini adalah layanan dasar. Opsi lainnya termasuk “oneshot”, yang berarti layanan hanya berjalan satu kali.

Baris “ExecStart=” menunjukkan proses mana yang harus dimulai oleh layanan. Ini menunjuk ke skrip yang kita buat sebelumnya.

Baris “Pengguna =” menentukan pengguna mana yang harus menjalankan perintah. Tanpa ini, proses akan diluncurkan oleh root.

Sekarang kita akan membuat file pengatur waktu. Ini menentukan kapan layanan diluncurkan. Sebaiknya gunakan nama dasar yang sama untuk file server dan timer, dengan ekstensi berbeda.

sudo gedit /etc/systemd/system/geek-timer.timer

Salin baris ini ke editor Anda, simpan file sebagai “/etc/systemd/ system/geek-timer.timer”, dan tutup editor Anda.

[Unit]Description=”Timer untuk geek-timer.service”[Timer]Unit=geek-timer.serviceOnBootSec=5minOnUnitActiveSec=1min[Install]WantedBy=timer .target

Bagian “[Unit]” berisi baris teks “Deskripsi=”. Bagian “[Timer]” berisi tiga pengaturan. Baris “Unit=” menunjukkan layanan mana yang harus diluncurkan ketika pengatur waktu ini terpicu. Baris “OnBootSec=” memberitahu sistem untuk meluncurkan layanan lima menit setelah komputer melakukan booting. Baris “OnUnitActiveSec=” memberi tahu pengatur waktu untuk meluncurkan layanan satu menit setelah terakhir kali diaktifkan.

Dengan kata lain, lima menit setelah komputer di-boot, layanan akan diluncurkan. Layanan kemudian akan diulang dengan selang waktu satu menit.

Di bagian “[Instal]”, kami telah menyertakan baris “WantedBy=” yang menentukan “timers.target.” “Timers.target” adalah unit target khusus yang mengatur semua unit pengatur waktu yang aktif setelah boot, dan cocok untuk semua pengatur waktu sistem dasar.

Kita dapat menggunakan perintah status sistemctl untuk melihat pengatur waktu baru kita.

systemctlstatusgeek-timer. service

Tidak ada kesalahan yang dilaporkan, itu bagus. Ini tidak aktif karena kami belum memulai layanan. Meskipun kami melakukan boot ulang sekarang, layanan dan pengatur waktu kami tidak akan diaktifkan. Mari kita mulai dan aktifkan timer kita.

sudosystemctlenablegeek-timer.timersudosystemctlstartgeek-timer.timer

Saya me-reboot komputer uji untuk melihat apakah masa tenggang lima menit setelah boot-up dipatuhi, dan memeriksa statusnya sekali lagi.

systemctlstatusgeek-timer.service

Ini menunjukkan PC melakukan booting pada 12:18, dan timer kami akan terpicu pada 12:23. Opsi lima menit setelah boot yang kami minta ditangani dengan benar. Saya menunggu hingga lima menit berakhir dan kemudian dengan cepat menjalankan perintah yang sama.

systemctlstatusgeek-timer.service

Kita dapat melihat bahwa waktu pemicu telah berpindah satu menit dari 12:23 ke 12:24. Ini berarti kita sekarang memasuki “fase berulang setiap menit” dari pengatur waktu kita.

Memeriksa file log kita beberapa menit kemudian, menunjukkan waktu pemicu awal 12:23, kemudian peluncuran berikutnya terjadi sekitar satu menit.

pengatur waktu kucing.log

Menyempurnakan Pengaturan Waktu

Waktu pemicu peristiwa berulang agak kabur. Itu sebabnya saya mengatakan kejadian di file log berjarak sekitar satu menit. Ada elemen acak kecil yang ditambahkan ke waktu pemicu untuk memastikan bahwa pengatur waktu yang dijadwalkan untuk dipicu pada waktu yang sama benar-benar dipicu secara terhuyung-huyung. Biasanya, untuk tugas seperti memulai pencadangan atau aktivitas pemeliharaan sistem lainnya, itu sudah cukup akurat.

Jika Anda memerlukan resolusi yang lebih ketat, Anda dapat menggunakan pengaturan waktu mikrodetik. Menambahkan baris ini ke bagian “[Timer]” pada file timer Anda akan menyetel sistem untuk menggunakan resolusi satu mikrodetik.

AccuracySec=1us

Ini adalah pengaturan akurasi yang dapat Anda gunakan, dan cara merujuknya.

Microseconds: us, µs msec, ms Detik: detik, detik, detik, s Menit: menit, menit, menit, m Jam: jam, jam, jam, h Hari: hari, hari, d Minggu: minggu, minggu, w Bulan: bulan, bulan, M Tahun: tahun, tahun, y

Untuk memiliki pemicu pengatur waktu pada waktu dan tanggal tertentu dicapai dengan menggunakan pengaturan “OnCalendar”. Ini ada di bagian “[Timer]” pada file timer. Format umumnya adalah:

OnCalendar=DayOfTheWeek YYYY-MM-DD HH:MM:SS

DayOfTheWeek bersifat opsional. Nilai lainnya diganti dengan tanda bintang ‘*’ yang berarti “setiap”, seperti setiap menit atau setiap jam. Anda dapat menggunakan nama atau nomor untuk hari dan bulan, serta daftar yang dipisahkan koma untuk mewakili pilihan nilai. Rentang nilai ditunjukkan dengan menggunakan dua periode “..” untuk memisahkan awal dan nilai rentang.

Ini akan menyetel pengatur waktu untuk dipicu pada 01:15 pada hari Jumat pertama setiap bulan.

OnCalendar=Jumat *-*-1 ..7 01:15:00

Ini akan menjalankan proses pada pukul 19:00 setiap hari.

OnCalendar=*-*-* 19:00:00

Pengatur waktu dapat memiliki lebih dari satu waktu pemicu yang disetel. Ini akan menjalankan proses pada waktu yang berbeda pada hari kerja dibandingkan pada akhir pekan.

OnCalendar=Senin..Jum 23:00:00OnCalendar=Sab,Ming 19:00:00

Halaman manual waktu sistem deskripsi lengkap format waktu dan banyak tip berguna dan trik.

Fleksibilitas Luar Biasa dan Kemudahan Penggunaan

Sebagian besar fleksibilitas pengatur waktu sistem terletak pada cara Anda melayani acara kalender aneh. Misalnya, untuk menyetel pengatur waktu agar terpicu pada pukul 15:00 pada semua hari selain hari Jumat, Anda dapat menggunakan format ini:

Senin..Kam,Sabtu,Minggu *-*-* 15:00:00

Dengan menggabungkan daftar yang dipisahkan koma dan rentang Anda akan merasa mudah untuk membuat pemicu real-time untuk segala macam persyaratan yang rumit.

Setelah Anda mendapatkan ide untuk membuat layanan untuk meluncurkan proses Anda, dan file pengatur waktu untuk mengatur peluncuran layanan, Anda sudah 90 persen cara untuk memahami pengatur waktu sistem. 10 persen terakhir merangkul kekuatan acara kalender yang anggun.

Terbaru

  • Inilah Cara Buka Situs yang Diblokir di Tahun 2026, Trik Rahasia Tanpa VPN!
  • Inilah Cara Menghilangkan Iklan di HP Xiaomi dan POCO Paling Ampuh Tanpa Root, Update April 2026
  • Inilah 7 Rekomendasi HP 1 Jutaan Terbaik yang Layak Kalian Lirik, Speknya Nggak Kaleng-Kaleng!
  • Inilah 7 Cara Mengembalikan Foto yang Terhapus Permanen di HP, Ternyata Masih Bisa Diselamatkan!
  • Inilah Cara Mengatasi Baterai Boros Setelah Update HyperOS yang Paling Ampuh
  • Inilah Pokémon Champions 2026, Game Battle Kompetitif Terbaru dan Cara Download-nya yang Perlu Kalian Tahu!
  • Inilah Doods Viral: Pengertian, Bahaya, dan Kenapa Kalian Harus Ekstra Waspada!
  • Gini Caranya Ngebangun Bisnis AI yang Menguntungkan dalam 48 Jam Saja!
  • Pengertian “He is Risen” Adalah?
  • Inilah Rekomendasi HP Snapdragon Paling Murah dengan RAM 8 GB Terupdate April 2026
  • Inilah 12 Kampus Negeri di Jogja yang Jarang Diketahui, Ternyata Banyak yang Kasih Kuliah Gratis!
  • Inilah Rekomendasi HP Tecno Kamera Terbaik 2026, Spek Gahar Harga Tetap Pelajar!
  • Apa itu PPU UTBK? Ini Rahasia Taklukkan Skor Tinggi di SNBT 2026 Tanpa Harus Menghafal!
  • Inilah Alasan Kenapa Lapisan Es Greenland Ternyata Bisa Bergerak Kayak Adonan yang Dipanaskan
  • Inilah Kode Redeem FC Mobile 10 April 2026 dan Rahasia Panen Pemain OVR 117
  • Apa itu Benwit/Bensin Sawit? Benarkah Bisa Jadi Solusi Bahan Bakar Masa Depan atau Cuma Hoaks Belaka?
  • Inilah 4 Tablet 5G Termurah April 2026 yang Kencang dan Worth It untuk Kerja!
  • Inilah Rincian UKT Unesa 2026 Jalur SNBP dan SNBT, Cek Biaya Kuliahmu di Sini!
  • Inilah Bocoran Event Free Fire 10 April 2026, Ada Diskon 90 Persen dan Kode Redeem Gratis!
  • Inilah Deretan HP Murah April 2026, dari Infinix NFC Hingga Realme dengan Baterai Super Besar dan Update Penting IGRS
  • Inilah Alasan Google Kena Sanksi Teguran Terkait PP Tunas dan Perlindungan Anak di YouTube
  • Inilah Spesies Baru Homalomena dari Sumatera yang Berhasil Diidentifikasi Melalui Media Sosial
  • Inilah Cara Download FF Advance Server 2026 Apk yang Aman dan Update Misteri Bawah Laut Terbaru!
  • Inilah 10 PTS Terbaik di Indonesia Versi Uniranks 2026, Referensi Mantap Buat Kalian Calon Mahasiswa Baru!
  • Inilah Daftar Lengkap Pusat UTBK 2026 di Jawa Tengah, Cek Lokasi dan Alamat Kampusnya Biar Nggak Salah Alamat!
  • Inilah Alasan Kenapa Hasil TKA Jadi Kunci Penting di Jalur Prestasi SPMB 2026, Orang Tua Wajib Tahu!
  • Inilah Alasan Kenapa Situs Bumiayu Dianggap Lebih Tua dari Sangiran dan Jadi Kunci Sejarah Jawa
  • Inilah Cara Cerdik Larva Kumbang Hitam Eropa Meniru Aroma Bunga untuk Menipu Lebah
  • Inilah 45 Planet Berbatu yang Paling Berpotensi Jadi Rumah Kedua Manusia di Masa Depan
  • Inilah Cara Ambil Kursus Online Gratis dari Harvard University untuk Asah Skill Digital Kalian!
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to Use VoxCPM2: The Complete Tutorial for Professional Voice Cloning and AI Speech Generation
  • Complete tutorial for Creao AI: How to build smart AI agents that automate your daily tasks
  • How to Streamline Your Digital Workflow with TeraBox AI: A Complete Tutorial for Beginners
  • How to Run Google Gemma 4 Locally: A Beginner’s Guide to Tiny but Mighty AI Models
  • A Beginner Tutorial on Cloning Website Source Code Using ChatGPT and AI Logic Reconstruction
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme