Crontab di Linux: CONTOH Penjadwalan Pekerjaan

โšก Ringkasan Cerdas

Crontab di Linux menjadwalkan perintah untuk dijalankan secara otomatis pada waktu, tanggal, atau interval tetap menggunakan daemon cron, memungkinkan administrator untuk mengotomatiskan pencadangan, pembersihan log, pemberitahuan, dan pemeliharaan sistem rutin tanpa intervensi manual apa pun.

  • โฐ Daemon Cron: Proses latar belakang cron membaca file crontab dan menjalankan setiap tugas terjadwal tepat pada menit yang Anda tetapkan.
  • ๏ธ Format Crontab: Lima kolom waktu โ€” menit, jam, tanggal, bulan, dan hari dalam seminggu โ€” mendahului perintah untuk menjalankan perintah tersebut.
  • ๏ธ Pekerjaan penyuntingan: Gunakan crontab -e untuk menambahkan atau mengubah tugas, crontab -l untuk menampilkan daftar tugas, dan crontab -r untuk menghapus tugas.
  • ๐Ÿ” String khusus: Pintasan seperti @reboot, @daily, @weekly, dan @hourly menggantikan lima kolom waktu untuk jadwal umum.
  • ๐Ÿ“… Contoh praktis: Entri yang sudah jadi mencakup setiap lima menit, hari kerja tertentu, jadwal bulanan, dan tugas-tugas awal.
  • ๐Ÿค– Bantuan AI: Asisten AI dan GitHub Copilot dapat menghasilkan dan menjelaskan ekspresi cron dalam hitungan detik.

Crontab dalam penjadwalan tugas di Linux dengan contoh.

Crontab, singkatan dari cron table, adalah file konfigurasi dan perintah yang menggerakkan cron table. Linux Penjadwalan tugas. Bagian di bawah ini menjelaskan format crontab, perintah untuk menambah, mencantumkan, dan menghapus tugas, string @ khusus, dan contoh penjadwalan yang siap digunakan.

Apa itu crontab?

Cron dinamai berdasarkan kata Yunani "Chronos", yang berarti waktu. Ini adalah proses sistem (daemon) yang secara otomatis menjalankan tugas sesuai jadwal yang telah ditetapkan. Cron adalah serangkaian perintah yang digunakan untuk menjalankan tugas terjadwal secara teratur. Crontab adalah singkatan dari "cron table", dan memungkinkan Anda menggunakan penjadwal tugas cron untuk mengeksekusi tugas-tugas tersebut.

Crontab juga merupakan nama program yang digunakan untuk mengedit jadwal tersebut. Program ini dijalankan oleh file crontab โ€” sebuah file konfigurasi yang mencantumkan perintah shell yang akan dijalankan secara berkala sesuai jadwal yang ditentukan.

Mengapa Menggunakan Cron Jobs?

Berikut adalah alasan utama menggunakan cron job di Linux:

  • Melakukan pencadangan terjadwal untuk file log atau basis data.
  • Menghapus file log lama secara otomatis.
  • ArchiMenghapus dan membersihkan tabel basis data.
  • Mengirimkan email pemberitahuan seperti buletin atau pengingat masa berlaku kata sandi.
  • Melakukan pembersihan rutin terhadap data yang di-cache.
  • Mengotomatiskan tugas-tugas Unix dan Linux yang berulang.
  • Mengotomatiskan pemeliharaan sistem rutin.

Bagaimana cara menggunakan cron di Linux?

Paket sistem Linux menyertakan penjadwal tugas yang berguna bernama crontab. Crontab populer karena suatu tugas dapat dijadwalkan untuk dijalankan sebagai pengguna root, yang membuat perubahan sistem otomatis lebih mudah. โ€‹โ€‹Anda cukup mengubah tugas sekali dan kemudian menunggu hingga tugas tersebut dijalankan kembali sesuai jadwal.

Format Crontab Linux

Entri crontab Linux memiliki enam kolom. Lima kolom pertama menentukan waktu dan tanggal eksekusi, dan kolom keenam berisi perintah yang akan dijalankan.

Sintaks crontab:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

Diagram di bawah ini memetakan setiap tanda bintang dalam entri crontab ke kolom yang dikendalikannya, dari menit hingga hari dalam seminggu, diikuti oleh perintah yang akan dieksekusi.

Diagram format crontab Linux yang menunjukkan lima kolom waktu dan perintah.

Kelima kolom waktu tersebut menerima nilai-nilai berikut: menit (0โ€“59), jam (0โ€“23), tanggal (1โ€“31), bulan (1โ€“12 atau Janโ€“Des), dan hari dalam seminggu (0โ€“7, di mana 0 dan 7 sama-sama berarti Minggu). Anda mengontrol setiap kolom dengan karakter khusus berikut:

  • Tanda bintang (*): Mencocokkan setiap nilai yang mungkin untuk bidang tersebut.
  • Tentukan rentang: Gunakan tanda hubung untuk menentukan rentang, seperti 1-10, 30-40, jan-mar, atau mon-wed.
  • Tentukan beberapa rentang: Gunakan koma untuk menggabungkan rentang waktu, seperti apr-jun,oct-dec.

Cara Menambah/Memodifikasi Crontab

Pengguna dapat mengedit tugas crontab mereka sendiri dengan perintah crontab berikut. Opsi -u menargetkan crontab pengguna tertentu, jadi berikan nama pengguna seperti yang ditunjukkan pada contoh selanjutnya:

$ crontab -u -e 

Perintah di atas akan membuka konfigurasi crontab pribadi untuk sistem Anda, yang dapat Anda edit menggunakan editor teks default Anda.

Tidak perlu memulai ulang cron; cron akan secara otomatis mengambil perubahan Anda. Untuk melihat tugas Anda saat ini, gunakan:

$ crontab -l

Untuk menghapus tugas crontab Anda, gunakan perintah berikut:

$ crontab -r

Untuk menambahkan atau memperbarui tugas di crontab, gunakan perintah di bawah ini:

crontab -e

Untuk mengedit crontab pengguna lain, sebutkan nama pengguna dengan opsi -u:

crontab -u username -e

Cara Daftar Crontab

Untuk melihat entri crontab pengguna saat ini:

crontab -l

Untuk melihat entri crontab pengguna tertentu:

crontab -u username -l

Contoh Crontab Penting

Berikut beberapa contoh jadwal crontab yang penting dan siap digunakan:

Deskripsi perintah
Menjalankan berbagai tugas terjadwal. Perintah di bawah ini dieksekusi pada pukul 7 pagi dan 5 sore setiap hari.
0 7,17 * * * /scripts/script.sh
Menjalankan tugas cron setiap 5 menit.
*/5* * * * *  /scripts/script.sh
Menjalankan tugas setiap Monday Jam 5 pagi. Ini berguna untuk tugas mingguan seperti pembersihan sistem.
0 5 * * mon  /scripts/script.sh
Menjalankan skrip Anda setiap 3 menit.
*/3 * * * * /scripts/monitor.sh
Menjadwalkan tugas cron yang akan dieksekusi pada bulan-bulan tertentu โ€” di sini, Februari, Juni, dan September.
* * * feb,jun,sep *  /script/script.sh
Dijalankan pada hari-hari tertentu. Contoh ini berjalan setiap Monday dan Rabu pukul 5.
0 17 * * mon,wed  /script/script.sh
Memungkinkan cron untuk dieksekusi pada hari Sabtu pertama setiap bulan.
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
Menjalankan skrip setiap 6 jam, dikonfigurasi seperti di bawah ini.
0 */6 * * * /scripts/script.sh
Menjadwalkan tugas untuk dieksekusi dua kali pada Monday dan Selasa. Gunakan pengaturan berikut untuk melakukannya.
0 4,17 * * mon,tue /scripts/script.sh
Menjadwalkan tugas cron untuk dieksekusi setiap 15 detik.
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
Menjadwalkan tugas setiap tahun. @yearly mirip dengan โ€œ0 0 1 1 *โ€. Tugas akan dijalankan sekali setahun pada tengah malam tanggal 1 Januari โ€” berguna untuk ucapan Tahun Baru.
@yearly /scripts/script.sh 
Menjalankan tugas secara bulanan. @monthly mirip dengan โ€œ0 0 1 * *โ€. Tugas dijalankan pada tengah malam di hari pertama setiap bulan.
@monthly /scripts/script.sh
Menjalankan beberapa tugas menggunakan satu entri cron.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
Menjadwalkan tugas secara mingguan. @weekly mirip dengan โ€œ0 0 * * 0โ€. Ini menjalankan tugas mingguan seperti pembersihan sistem pada tengah malam setiap hari Minggu.
@weekly /bin/script.sh
Menjadwalkan tugas setiap hari. @daily mirip dengan โ€œ0 0 * * *โ€. Tugas dijalankan sekali sehari pada tengah malam.
@daily /scripts/script.sh
Menjalankan tugas setiap jam. @hourly mirip dengan โ€œ0 * * * *โ€. Tugas dijalankan pada awal setiap jam.
@hourly /scripts/script.sh
Menjalankan tugas saat sistem dihidupkan ulang. @reboot berguna untuk tugas-tugas yang harus dijalankan sistem saat startup, sehingga pekerjaan latar belakang dapat dimulai secara otomatis.
@reboot /scripts/script.sh

Pertanyaan Umum Demo Slot

Crontab pengguna disimpan di /var/spool/cron/ (atau /var/spool/cron/crontabs/ pada Debian dan Ubuntu), sedangkan jadwal sistem secara keseluruhan berada di /etc/crontab dan direktori /etc/cron.d. Selalu edit crontab pengguna dengan crontab -e daripada membuka file tersebut secara langsung.

Cron hanya menjalankan tugas tepat pada waktu yang dijadwalkan dan akan melewatkannya jika mesin dimatikan. Anacron tracks menjalankan tugas yang terlewat setelah sistem kembali aktif, sehingga cocok untuk laptop dan desktop yang tidak selalu menyala.

Cron menggunakan lingkungan minimal, jadi keterbatasan PATH biasanya menjadi penyebabnya. Gunakan jalur absolut untuk perintah dan skrip, buat skrip dapat dieksekusi, dan alihkan output ke file log sehingga Anda dapat menangkap kesalahan apa pun untuk debugging.

Tambahkan >> /path/to/logfile 2>&1 ke perintah untuk menangkap output standar dan kesalahan dalam sebuah file. Atau, atur variabel MAILTO di bagian atas crontab agar cron mengirimkan output setiap pekerjaan ke alamat tersebut melalui email.

File /etc/cron.allow dan /etc/cron.deny mengontrol akses. Jika cron.allow ada, hanya pengguna yang tercantum di dalamnya yang dapat menggunakan crontab. Jika hanya cron.deny yang ada, setiap pengguna kecuali yang tercantum diizinkan untuk menjadwalkan tugas.

Crontab pengguna yang dibuat dengan perintah `crontab -e` memiliki lima kolom waktu diikuti oleh perintah. File sistem `/etc/crontab` menambahkan kolom yang menyebutkan nama pengguna yang menjalankan tugas, dengan format menit, jam, hari, bulan, hari kerja, pengguna, lalu perintah.

Ya. Alat pembelajaran mesin dapat menetapkan waktu eksekusi dan penyelesaian pekerjaan normal sebagai patokan, kemudian menandai anomali seperti pekerjaan yang berjalan terlalu lama, gagal tanpa pemberitahuan, atau meleset dari jadwalnya. Analisis log AI juga mengelompokkan kesalahan terkait untuk mempercepat pencarian akar penyebab.

Ya. Kopilot GitHub Anda dapat membuat ekspresi cron dari komentar berbahasa Inggris sederhana, menjelaskan fungsi jadwal seperti */5 * * * *, dan menyusun skrip shell yang dijalankan oleh sebuah job. Selalu uji ekspresi tersebut sebelum menambahkannya ke crontab produksi.

Ringkaslah postingan ini dengan: