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

  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Masih Pusing Hitung Gaji Manual? Waktunya Pakai Aplikasi HR
  • Apa Itu Dustruco? Ini Pengertian dan Cara Pasangnya di HP Kalian
  • Apa Itu Aplikasi Dooie Live? Ini Pengertian dan Cara Pakai Aplikasinya untuk Cari Jodoh
  • Apa Itu Battle Emote Jefri Nichol dan Om Telolet Om di MLBB? Ini Penjelasannya
  • Apa itu Game Luna Mobile dan Bagaimana Cara Menangnya?
  • Apa Itu Kompensasi Sistem Trail Mobile Legends? Ini Penjelasan dan Cara Klaim Hadiahnya
  • Apa Itu Update Google Pixel 2 Desember 2025? Ini Penjelasannya!
  • Ini Cara Reset Desil di Aplikasi Cek Bansos Biar Valid (Update Januari 2026)
  • Apa Itu EZNET Wireless dan Fiber Optic? Ini Perbedaan dan Pengertian Lengkapnya
  • Pengertian Rework Magic Wheel dan Rank Mythic Eternal: Apa itu Perubahan Sistem Baru Mobile Legends?
  • Apa Itu Diamond Combo? Pengertian Game Puzzle Viral yang Katanya Bisa Hasilkan Cuan
  • Apa Itu Showbox? Pengertian, Fungsi, dan Cara Menggunakannya di Android
  • Cara Mengatasi Fitur Monet Facebook Pro Tiba-tiba Hilang
  • Google Bikin Kejutan! Pixel 10 Diskon Gila-gilaan di YouTube Premium
  • Apa Itu Google CC? Ini Pengertian Agen Produktivitas AI Eksperimental Terbaru
  • Apa Itu Ultras Seblak di eSport? Pengertian dan Fenomena Baru Suporter eSport
  • Android 16: Animasi Folder Baru yang Mengubah Cara Kita Berinteraksi!
  • Android 16: Notifikasi Lokasi ‘Blue Dot’ – Fitur Baru yang Perlu Kalian Ketahui!
  • Apa Itu Risiko Auto Click di Event Spongebob Mobile Legends? Ini Penjelasannya
  • Apa Itu Fitur Eksperimental Windows? Ini Pengertian dan Cara Menonaktifkannya
  • Apa Itu Android 16 Beta 1? Ini Pengertian dan Fitur Terbarunya
  • Belum Tahu? Ini Trik Supaya Bisa Dapat Skin Patrick Mobile Legends dengan Harga Murah
  • Pixel Desember 2025: Update Besar Siap Meluncur, Apa yang Baru?
  • Apa Itu HYFE XL Prioritas? Ini Pengertian, FUP, dan Realita Kecepatannya
  • Pengertian Render dan Convert: Apa Bedanya dalam Video Editing?
  • Cara Mengatasi Aplikasi Office yang Terus Muncul dan Menerapkan Perubahan Pengaturan Privasi
  • Pixel Launcher Mendapatkan Sentuhan Google Search Baru!
  • Penyebab Aplikasi Wondr BNI Tidak Bisa Dibuka
  • Kode 0425 Daerah Mana? Ini Pengertian dan Fakta Sebenarnya
  • Apa Itu AI Kill Switch di Firefox? Ini Pengertian dan Detail Fitur Terbarunya
  • Apa Itu Platform Modular Intel Alder Lake N (N100)? Ini Pengertian dan Spesifikasinya
  • Apa Itu Armbian Imager? Pengertian Utilitas Flashing Resmi untuk Perangkat ARM Kalian
  • Apa Itu OpenShot 3.4? Pengertian dan Fitur LUT Terbaru untuk Grading Warna
  • Flatpak 1.16.2: Sandbox Baru untuk GPU Intel Xe dan VA-API
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Loading Model AI Lama? Coba Fitur Cached Models RunPod Ini, Hemat Waktu & Biaya!
  • Replicate Diakuisisi Cloudflare? Tenang, Ini Justru Kabar Baik Buat Developer AI
  • Apa Itu Kerentanan UEFI? Pengertian Celah Keamanan DMA pada Booting Awal
  • Apa Itu Serangan Siber Infrastruktur Kritikal? Belajar dari Kasus Peretasan Air Bersih Denmark
  • Apa Itu Error Update MSMQ di Windows 10? Ini Penjelasan Lengkap dan Solusinya
  • Apa Itu “I Am Not a Robot – reCAPTCHA Verification ID: 2165”? Ini Pengertian dan Bahayanya
  • Apa Itu Serangan Clop Ransomware pada CentreStack? Ini Pengertian dan Dampaknya
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

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