GNU/Linux >> Belajar Linux >  >> Linux

Cron Job:Panduan Lengkap untuk Pemula 2022

Melakukan tugas yang sama berulang-ulang bisa menjadi tugas yang berat. Penjadwalan tugas cron memungkinkan pengguna mengotomatiskan tugas di server pribadi virtual atau sistem operasi mirip Unix. Ini menghemat waktu berharga, memungkinkan pengguna untuk fokus pada tugas penting lainnya.

Dalam panduan lengkap untuk pemula ini, Anda akan mempelajari dasar-dasar pekerjaan cron, termasuk jenis, sintaks, string khusus, dan izinnya. Di akhir artikel ini, Anda akan dapat menggunakan tugas cron untuk menjadwalkan tugas dengan lebih efisien.

Apa Itu Pekerjaan Cron?

Cron adalah program utilitas yang memungkinkan pengguna memasukkan perintah untuk menjadwalkan tugas berulang kali pada waktu tertentu. Tugas yang dijadwalkan dalam cron disebut tugas cron . Pengguna dapat menentukan jenis tugas yang ingin mereka otomatisasi dan kapan harus dijalankan.

Cron adalah daemon – proses latar belakang yang mengeksekusi pekerjaan non-interaktif. Di Windows, Anda mungkin akrab dengan proses latar belakang seperti Layanan yang bekerja mirip dengan daemon cron.

Daemon selalu menganggur, menunggu perintah untuk memintanya melakukan tugas tertentu. Perintah dapat dimasukkan di komputer mana pun di jaringan.

File cron adalah file teks sederhana yang berisi perintah untuk dijalankan secara berkala pada waktu tertentu. Tabel cron sistem default atau file konfigurasi crontab adalah /etc/crontab , terletak di dalam direktori crontab /etc/cron.*/ .

Hanya administrator sistem yang dapat mengedit file crontab sistem. Namun, sistem operasi mirip Unix mendukung banyak admin. Masing-masing dapat membuat file crontab dan menulis perintah untuk melakukan pekerjaan kapan pun mereka mau.

Dengan tugas cron, pengguna dapat mengotomatiskan pemeliharaan sistem, pemantauan ruang disk, dan menjadwalkan pencadangan. Karena sifatnya, pekerjaan cron sangat bagus untuk komputer yang bekerja 24/7, seperti server.

Meskipun tugas cron digunakan terutama oleh administrator sistem, tugas tersebut juga dapat bermanfaat bagi pengembang web.

Misalnya, sebagai administrator situs web, Anda dapat mengatur satu tugas cron untuk secara otomatis mencadangkan situs Anda setiap hari pada tengah malam, yang lain untuk memeriksa tautan yang rusak setiap Senin tengah malam, dan yang ketiga untuk mengosongkan cache situs Anda setiap Jumat siang.

Namun, seperti program lainnya, cron memiliki batasan yang harus Anda pertimbangkan sebelum menggunakannya:

  • Interval terpendek antar tugas adalah 60 detik . Dengan cron, Anda tidak akan dapat mengulangi tugas setiap 59 detik atau kurang.
  • Terpusat pada satu komputer. Pekerjaan Cron tidak dapat didistribusikan ke banyak komputer di jaringan. Jadi jika komputer yang menjalankan cron mogok, tugas terjadwal tidak akan dijalankan, dan tugas yang terlewat hanya dapat dijalankan secara manual.
  • Tidak ada mekanisme coba ulang otomatis . Cron dirancang untuk berjalan pada waktu yang ditentukan secara ketat. Jika tugas gagal, tugas tidak akan berjalan lagi hingga waktu yang dijadwalkan berikutnya. Ini membuat cron tidak cocok untuk tugas tambahan.

Dengan keterbatasan ini, cron adalah solusi yang sangat baik untuk tugas-tugas sederhana yang berjalan pada waktu tertentu dengan interval reguler minimal 60 detik.

Jika Anda ingin menjadwalkan pekerjaan satu kali untuk nanti, Anda mungkin ingin menggunakan metode lain.

Operasi Pekerjaan Cron Dasar

Tutorial ini akan menunjukkan cara menjadwalkan pekerjaan cron dengan memasukkan perintah ke dalam program shell seperti Bash di Linux atau sistem operasi mirip Unix lainnya.

Hosting VPS Hostinger berjalan pada sistem operasi berbasis Linux. Oleh karena itu, mempelajari cara menjadwalkan pekerjaan cron akan meningkatkan efisiensi kerja Anda sebagai administrator VPS secara signifikan. Baris perintah untuk VPS dapat diakses melalui PuTTY SSH.

Sebelum melanjutkan dengan operasi dasar cron, penting untuk mengetahui file konfigurasi tugas cron yang berbeda:

  • Sistem crontab. Gunakan untuk menjadwalkan seluruh sistem, pekerjaan penting yang hanya dapat diubah dengan hak akses root.
  • Crontab pengguna. File ini memungkinkan pengguna membuat dan mengedit tugas cron yang hanya berlaku di tingkat pengguna.

Jika Anda ingin mengedit crontab sistem, pastikan bahwa pengguna saat ini memiliki hak akses root.

Berikut ini adalah beberapa operasi dasar yang dapat dilakukan cron:

Untuk membuat atau mengedit file crontab , masukkan yang berikut ini ke dalam baris perintah:

crontab -e

Jika tidak ada file crontab yang ditemukan di sistem Anda, perintah akan secara otomatis membuat yang baru. crontab -e memungkinkan Anda untuk menambah, mengedit, dan menghapus tugas cron.

Anda memerlukan editor teks seperti vi atau nano untuk mengedit file crontab. Saat memasukkan crontab -e untuk pertama kalinya, Anda akan diminta untuk memilih editor teks yang ingin Anda gunakan untuk mengedit file.

Untuk melihat daftar tugas terjadwal yang aktif di sistem Anda, masukkan perintah berikut:

crontab -l

Jika sistem Anda memiliki banyak pengguna, Anda dapat melihat daftar file crontab mereka dengan memasukkan perintah berikut sebagai superuser:

crontab -u username -l

Anda juga dapat mengedit tugas terjadwal pengguna lain dengan mudah dengan mengetikkan perintah crontab berikut:

sudo su crontab -u username -e

Untuk memberi diri Anda hak akses root , tambahkan sudo su ke awal perintah. Beberapa perintah, termasuk perintah ini, hanya dapat dijalankan oleh pengguna root.

Terakhir, untuk menghapus semua tugas terjadwal di file crontab Anda dan mulai baru, ketik perintah berikut:

crontab -r

Atau, perintah berikut sama dengan crontab -r , kecuali itu akan meminta pengguna dengan opsi ya/tidak sebelum menghapus crontab:

crontab -i

Selain crontab, pengguna root juga dapat menambahkan tugas cron ke etc/cron.d direktori. Ini paling cocok untuk menjalankan skrip untuk penginstalan dan pembaruan otomatis.

Ingatlah bahwa pengguna yang menambahkan tugas cron ke direktori ini harus memiliki akses root dan sesuai dengan konvensi penamaan run-parts.

Atau, pengguna root dapat memindahkan skripnya ke direktori berikut untuk menjadwalkan eksekusinya:

  • /etc/cron.hourly/ – Jalankan semua skrip satu jam sekali
  • /etc/cron.daily/ – Jalankan sekali sehari.
  • /etc/cron.weekly/ – Jalankan seminggu sekali.
  • /etc/cron.monthly/ – Jalankan sebulan sekali.

Sintaks Crontab

Untuk membuat tugas cron, Anda harus memahami sintaks dan format cron terlebih dahulu. Jika tidak, pengaturan tugas cron dengan benar mungkin tidak dapat dilakukan.

Sintaks crontab terdiri dari lima bidang dengan kemungkinan nilai berikut:

  • Menit. Menit jam perintah akan berjalan, mulai dari 0-59.
  • Jam. Jam perintah akan dijalankan, mulai dari 0-23 dalam notasi 24 jam.
  • Hari dalam sebulan . Hari dalam bulan yang diinginkan pengguna untuk menjalankan perintah, mulai dari 1-31.
  • Bulan . Bulan yang pengguna inginkan untuk menjalankan perintah, mulai dari 1-12, dengan demikian mewakili Januari-Desember.
  • Hari dalam seminggu. Hari dalam seminggu untuk menjalankan perintah, mulai dari 0-6, mewakili Minggu-Sabtu. Dalam beberapa sistem, nilai 7 mewakili hari Minggu.

Jangan biarkan kolom apa pun kosong.

Jika, misalnya, Anda ingin menyiapkan tugas cron untuk menjalankan root/backup.sh setiap hari Jumat pukul 17:37, berikut tampilan perintah cron Anda:

37 17 * * 5 root/backup.sh

Pada contoh di atas, 37 dan 17 mewakili 17:37. Kedua tanda bintang untuk Hari dalam sebulan dan Bulan bidang menandakan semua nilai yang mungkin. Ini berarti bahwa tugas harus diulang tidak peduli tanggal atau bulannya. Akhirnya, 5 mewakili hari Jumat. Himpunan angka kemudian diikuti dengan lokasi tugas itu sendiri.

Jika Anda tidak yakin tentang penulisan sintaks cron secara manual, Anda dapat menggunakan alat gratis seperti Crontab Generator atau Crontab.guru untuk menghasilkan angka yang tepat untuk waktu dan tanggal yang Anda inginkan untuk perintah Anda.

Untuk mengatur waktu yang tepat untuk perintah cron Anda, pengetahuan tentang operator pekerjaan cron sangat penting. Mereka memungkinkan Anda untuk menentukan nilai mana yang ingin Anda masukkan di setiap bidang. Anda perlu menggunakan operator yang tepat di semua file crontab.

  • Asterisk (*) . Gunakan operator ini untuk menandakan semua nilai yang mungkin dalam suatu bidang. Misalnya, jika Anda ingin tugas cron Anda berjalan setiap menit, tulis tanda bintang di Menit lapangan.
  • Koma (,) . Gunakan operator ini untuk membuat daftar beberapa nilai. Misalnya, menulis 1,5 di Hari dalam seminggu field akan menjadwalkan tugas yang akan dilakukan setiap hari Senin dan Jumat.
  • Tanda hubung (-) . Gunakan operator ini untuk menentukan rentang nilai. Misalnya, jika Anda ingin menyiapkan tugas cron dari Juni hingga September, tulis 6-9 dalam Bulan lapangan akan melakukan pekerjaan itu.
  • Pemisah (/) . Gunakan operator ini untuk membagi nilai. Misalnya, jika Anda ingin menjalankan skrip setiap dua belas jam, tulis */12 dalam Jam lapangan.
  • Terakhir (L) . Operator ini dapat digunakan di bidang hari-bulan dan hari-minggu. Misalnya, menulis 3L di bidang hari dalam seminggu berarti Rabu terakhir dalam sebulan.
  • Hari kerja (L) . Gunakan operator ini untuk menentukan hari kerja terdekat dari waktu tertentu. Misalnya, jika 1 satu bulan adalah hari Sabtu, menulis 1W di bidang hari-bulan akan menjalankan perintah pada hari Senin berikutnya (tanggal 3 ).
  • Hash (#). Gunakan operator ini untuk menentukan hari dalam seminggu, diikuti dengan angka mulai dari 1 hingga 5. Misalnya, 1#2 berarti Senin kedua setiap bulan.
  • Tanda tanya (?) . Gunakan operator ini untuk memasukkan "tidak ada nilai khusus" untuk bidang "hari dalam sebulan" dan "hari dalam seminggu".

String Khusus Pekerjaan Cron

String khusus digunakan untuk menjadwalkan pekerjaan cron pada interval waktu tanpa pengguna harus mengetahui rangkaian angka yang logis untuk dimasukkan. Untuk menggunakannya, tulis @ diikuti dengan frasa sederhana.

Berikut adalah beberapa string khusus yang berguna yang dapat Anda gunakan dalam perintah:

  • @setiap jam . Pekerjaan akan berjalan satu jam sekali.
  • @harian atau @tengah malam . String ini akan menjalankan tugas setiap hari pada tengah malam.
  • @mingguan . Gunakan ini untuk menjalankan pekerjaan seminggu sekali pada tengah malam pada hari Minggu.
  • @bulanan. String khusus ini menjalankan perintah sekali pada hari pertama setiap bulan.
  • @tahunan . Gunakan ini untuk menjalankan tugas setahun sekali pada tengah malam tanggal 1 Januari.
  • @reboot . Dengan string ini, pekerjaan hanya akan berjalan sekali saat startup.

Penting! Ingatlah untuk lebih berhati-hati saat menjadwalkan tugas cron yang peka terhadap zona waktu.

Contoh Sintaks Cron

Sekarang setelah Anda mengetahui tampilan sintaks cron yang benar, kami akan membahas beberapa contoh untuk membantu Anda memahaminya dengan lebih baik.

Perlu diingat bahwa output cron akan secara otomatis dikirim ke akun email lokal Anda. Jika Anda ingin berhenti menerima email, Anda dapat menambahkan >/dev/null 2>&1 ke perintah seperti pada contoh berikut:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Jika Anda ingin mengirim output ke akun email tertentu, tambahkan MAILTO diikuti dengan alamat email. Ini contohnya:

MAILTO="[email protected]"
0 3 * * * /root/backup.sh >/dev/null 2>&1

Lihatlah contoh perintah berikut untuk mendapatkan pemahaman yang lebih baik tentang sintaks cron:

Contoh Penjelasan
0 0 * * 0 /root/backup.sh Lakukan pencadangan setiap hari Minggu tengah malam.
0 * * * 1 /root/clearcache.sh Hapus cache setiap jam pada hari Senin.
0 6,18 * * * /root/backup.sh Cadangkan data dua kali sehari pada pukul 6 pagi dan 6 sore.
*/10 * * * * /scripts/monitor.sh Lakukan pemantauan setiap 10 menit.
*/15 * * * * /root/backup.sh Lakukan pencadangan setiap 15 menit.
* * 20 7 * /root/backup.sh Lakukan pencadangan setiap menit pada tanggal 20 Juli.
0 22 * ​​* 1-5 /root/clearcache.sh Hapus cache setiap hari kerja (Senin sampai Jumat) jam 10 malam.
0 0 * * 2 * /root/backup.sh Lakukan pencadangan pada tengah malam setiap hari Selasa.
* * * 1,2,5 * /scripts/monitor.sh Lakukan pemantauan setiap menit selama bulan Januari, Februari, dan Mei.
10-59/10 5 * * * /root/clearcache.sh Hapus cache setiap 10 menit pada jam 5 pagi, mulai dari jam 5:10 pagi.
0 8 1 */3 * /home/user/script.sh Buat tugas berjalan setiap tiga bulan pada hari pertama setiap bulan pada jam 8 pagi.
0 * * * * /root/backup.sh Buat cadangan setiap jam.
* * * * * /scripts/script.sh; /scripts/scrit2.sh Sertakan beberapa tugas pada satu tugas cron. Berguna untuk menjadwalkan beberapa tugas agar berjalan secara bersamaan.
@reboot /root/clearcache.sh Hapus cache setiap kali Anda menghidupkan sistem.
0 8 1-7 * 1 /scripts/script.sh Jalankan skrip pada hari Senin pertama setiap bulan, jam 8 pagi.
5 4 * * 0 /root/backup.sh Buat cadangan setiap hari Minggu pukul 04:05.
15 9 1,20 * * /scripts/monitor.sh Lakukan pemantauan pada 21:15 pada tanggal 1 dan 20 setiap bulan.
@hourly /scripts/monitor.sh Lakukan pemantauan setiap jam.
0 0 1,15 * 3 /scripts/script.sh Jalankan skrip pada tengah malam setiap Rabu antara tanggal 1 dan 15 setiap bulan.
15 14 1 * * /root/clearcache.sh Hapus cache pada hari pertama setiap bulan pada pukul 14:15.
00 17-08 * * 1-5 bin/check-db-status Periksa status database setiap hari dari Senin sampai Jumat setiap jam dari jam 8 sampai jam 5 sore.
15 6 1 1 * /root/backup.sh Lakukan pencadangan setiap 1 Januari pukul 06:15.
0 0 * * * /scripts/monitor.sh Jalankan skrip pemantauan sekali sehari pada tengah malam.
0 0 15 * * /root/clearcache.sh Hapus cache pada tengah malam pada tanggal 15 setiap bulan.
* * * * 1,5 /scripts/monitor.sh Melakukan monitoring setiap hari Senin dan Jumat.

Izin Cron

Dua file berikut dapat dibuat atau diedit untuk mengizinkan atau membatasi pengguna menggunakan file cron sistem:

  • /etc/cron.allow – jika cron.allow ada, itu harus berisi nama pengguna untuk mengizinkan mereka menggunakan tugas cron.
  • /etc/cron.deny – jika cron.allow tidak ada tapi cron.deny tidak, pengguna yang ingin menggunakan tugas cron tidak boleh terdaftar di dalam file.

Kesimpulan

Menyiapkan pekerjaan yang dijadwalkan secara otomatis adalah solusi praktis yang mencegah Anda melupakan tugas-tugas penting.

Pekerjaan Cron adalah cara terbaik bagi administrator sistem dan pengembang web untuk mengelola tugas yang berulang. Yang perlu dilakukan hanyalah memasukkan perintah yang tepat dan memilih waktu eksekusi yang benar.

Untuk menjadwalkan tugas cron, gunakan sintaks yang benar di baris perintah. Atau, Anda dapat menggunakan string khusus untuk mempermudah prosesnya. Ingatlah untuk memberikan izin yang tepat sehingga hanya pengguna yang berwenang yang dapat mengakses file cron.

Jika Anda mencari solusi khusus WordPress, lihat tutorial pekerjaan cron WordPress kami.

Kami harap artikel ini membantu Anda memahami dasar-dasar penggunaan tugas cron untuk menjadwalkan tugas. Jika Anda memiliki pertanyaan, jangan ragu untuk meninggalkannya di bagian komentar.


Linux
  1. Menggunakan di untuk pekerjaan cron sekali pakai di Linux

  2. YAML untuk pemula

  3. Memecahkan Masalah Pekerjaan Cron

  1. Siapkan pekerjaan cron untuk skrip tindakan

  2. Pekerjaan cron intensif atau tugas terjadwal

  3. Bagaimana cron menjadwalkan pekerjaan secara internal?

  1. Panduan terminal Linux untuk pemula

  2. Cara mengatur pekerjaan cron di cPanel

  3. Pengantar Virtualisasi:Panduan Komprehensif untuk Pemula