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

  • Padahal Negara Maju, Kenapa Selandia Baru Nggak Bangun Jembatan Antar Pulau? Ini Alasannya!
  • Nonton Drama Bisa Dapat 1 Juta? Cek Dulu Fakta dan Bukti Penarikan Aplikasi Gold Drama Ini!
  • Takut Saldo Habis? Gini Cara Stop Langganan CapCut Pro Sebelum Perpanjangan Otomatis
  • Gini Caranya Hilangkan Invalid Peserta Didik di Dapodik 2026 B Tanpa Ribet, Cuma Sekali Klik!
  • Rombel Hilang di Dapodik 2026 B? Tenang, Gini Cara Mudah Mengatasinya Tanpa Menu Aksi!
  • Pusing Lihat Ratusan Invalid Sarpras di Dapodik 2026 B? Tenang, Ini Cara Membereskan Datanya
  • Validasi Merah Terus? Ini Cara Tuntas Isi Data Listrik & Internet di Dapodik 2026 B
  • Inilah Trik Install Dapodik 2026.B Tanpa Patch, Wajib Uninstall Versi Lama!
  • Apakah APK PinjamAja Penipu?
  • Ini Trik Cepat Cuan di Clear Blast Tanpa Undang Teman
  • Belum Tahu? Inilah Suku Bajau Punya Gen “Mutan” Mirip Fishman One Piece, Ini Faktanya!
  • Inilah Paket PLTS Hybrid 6kVA Aspro DML 600 yang Paling Powerful!
  • Suku Tsaatan: Suku Mongolia Penggembala Rusa Kutub
  • Game Happy Rush Terbukti Membayar atau Cuma Scam Iklan?
  • Cara Nonton Drama Dapat Duit di Free Flick, Tapi Awas Jangan Sampai Tertipu Saldo Jutaan!
  • APK Pinjol Rajindompet Penipu? Ini Review Aslinya
  • Keganggu Iklan Pop-Up Indosat Pas Main Game? Ini Trik Ampuh Matikannya!
  • Belum Tahu? Inilah Cara Upload Reels Instagram Sampai 20 Menit, Konten Jadi Lebih Puas!
  • Apa itu Negara Somaliland? Apa Hubungannya dengan Israel?
  • Apa itu Game TheoTown? Game Simulasi Jadi Diktator
  • Inilah Rekomendasi 4 HP Honor Terbaik – Prosesor Snapdragon Tahun 2026
  • Lagi Nyari HP Gaming Murah? Inilah 4 HP Asus RAM 8 GB yang Recomended
  • Ini Trik Main Game Merge Cats Road Trip Sampai Tarik Saldo ke DANA
  • Mau Jadi Digital Writer Pro? Ini Caranya Buat Portofolio Pakai Blog!
  • Ini Cara Login Banyak Akun FB & IG di Satu HP Tanpa Diblokir!
  • Inilah Cara Mengatasi Verval Siswa Silang Merah di RDM versi Hosting
  • HP Tertinggal? Inilah Caranya Login PDUM Langsung dari Laptop, Lebih Praktis!
  • Inilah Cara Tarik Dana dari APK Drama Rush
  • Inilah Cara Mudah Tarik Uang Kertas Biru di Merge Cats ke DANA dan OVO Tanpa Ribet!
  • Apakah Aplikasi Pinjaman KlikKami Penipu? Ada DC Penagih?
  • What is DeepSeek’s Engram?
  • How to Installing Zabbix 7.2 on Ubuntu 25.10 for Real-Time Monitoring
  • Review MySQL Database Recovery Tool by Stellar
  • RQuickShare Tutorial: How to Bring Android’s Quick Share Feature to Your Linux Desktop
  • Why Storage & Memory Price Surges | Self-hosting Podcast January 14th, 2026
  • Cara Membuat AI Voice Agent Cerdas untuk Layanan Pelanggan Menggunakan Vapi
  • Inilah Cara Belajar Cepat Model Context Protocol (MCP) Lewat 7 Proyek Open Source Terbaik
  • Inilah Cara Menguasai Tracing dan Evaluasi Aplikasi LLM Menggunakan LangSmith
  • Begini Cara Menggabungkan LLM, RAG, dan AI Agent untuk Membuat Sistem Cerdas
  • Cara Buat Sistem Moderasi Konten Cerdas dengan GPT-OSS-Safeguard
  • Apa itu CVE-2020-12812? Ini Penjelasan Celah Keamanan Fortinet FortiOS 2FA yang Masih Bahaya
  • Apa itu CVE-2025-14847? Ini Penjelasan Lengkap MongoBleed
  • Ini Kronologi & Resiko Kebocoran Data WIRED
  • Apa itu Grubhub Crypto Scam? Ini Pengertian dan Kronologi Penipuan yang Catut Nama Grubhub
  • Apa Itu CVE-2025-59374? Mengenal Celah Keamanan ASUS Live Update yang Viral Lagi
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

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