Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Makalah
  • Ke-NU-an
  • Kabar
  • 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

  • Review WhatsApp Beta: Apakah Aman? Cara Instal dan Cara Keluar
  • Bebong: Makna, Asal Usul, dan Penggunaan dalam Bahasa Indonesia
  • Spinjam dan Spaylater: Apa yang Terjadi Jika Terlambat Membayar dan Bisakah Meminjam Lagi?
  • Cara Download dan Menonton Dood Stream Tanpa Iklan – Doods Pro
  • Cara Menghentikan dan Mengatasi Pinjol Ilegal
  • Kode Bank BRI untuk Transfer ke PayPal
  • Cara Menyadap WhatsApp Tanpa Aplikasi dan Kode QR
  • Apa yang Terjadi Jika Telat Bayar Shopee PayLater?
  • Telat Bayar Listrik 1 Hari: Apa yang Terjadi?
  • Cara Mengunduh Foto Profil WhatsApp Teman di Android, iPhone, dan PC/Mac
  • Rekomendasi Aplikasi Edit Foto Ringan Terbaik untuk PC Windows dan macOS
  • Cara Membeli Diamond Mobile Legends Menggunakan Pulsa Telkomsel
  • Tutorial Menggunakan Aplikasi Dana: Cara Top Up Dana dengan Mudah, Cepat, dan Murah untuk Pemula
  • Website Konverter YouTube ke MP3 Terbaik 2025
  • Cara Mengatasi Otorisasi Kadaluarsa Higgs Domino Tanpa Login Facebook
  • Tips Main E-Football 2024: Strategi Pemilihan Tim dan Pemain Terbaik
  • DramaQ: Situs Nonton Drakor Sub Indo Terbaru dan Lengkap
  • IGLookup: Cara Download APK dan Informasi Lengkap
  • Cara Daftar DrakorID? Apakah DrakorID Streaming Penipu/Ilegal?
  • Cara Login, Register, dan Transfer Data MyKONAMI
  • Website PT Melia Sehat Sejahtera Apakah Penipuan?
  • Alternatif APK Bling2: Alternatif Stylish untuk Ekspresi Diri
  • Contoh Bio IG Keren
  • Apa Arti Best Combo? Definisi dan Contoh Penggunaannya
  • Rakettv 2: Live Streaming Bola & Olahraga Lengkap Gratis (APK & Blog)
  • Apa itu Website SugarDaddy.com? Hati-hati Ilegal!
  • Apa Itu Pekerjaan Clipper Tiktok?
  • Mengenal Situs tiktoklikesgenerator.com
  • Apa itu Ovil App Studio?
  • jimpl.com: Alat Online Gratis untuk Melihat Metadata dan Data EXIF Foto
  • Review WhatsApp Beta: Apakah Aman? Cara Instal dan Cara Keluar
  • Bebong: Makna, Asal Usul, dan Penggunaan dalam Bahasa Indonesia
  • Spinjam dan Spaylater: Apa yang Terjadi Jika Terlambat Membayar dan Bisakah Meminjam Lagi?

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