Terkadang, Anda mungkin memiliki tugas yang perlu dilakukan secara teratur atau pada interval tertentu yang telah ditentukan. Tugas-tugas tersebut termasuk membuat cadangan database, memperbarui sistem, melakukan reboot berkala dan sebagainya. Tugas seperti itu di linux disebut sebagai tugas cron (Crontab). Pekerjaan Cron digunakan untuk otomatisasi tugas yang berguna dan membantu menyederhanakan pelaksanaan tugas yang berulang dan terkadang biasa-biasa saja. Cron adalah daemon yang memungkinkan Anda untuk menjadwalkan pekerjaan ini yang kemudian dilakukan pada interval tertentu. Dalam tutorial ini, Anda akan mempelajari cara menjadwalkan tugas menggunakan tugas cron.
File Crontab
File crontab, juga dikenal sebagai tabel cron , adalah file teks sederhana yang berisi aturan atau perintah yang menentukan interval waktu pelaksanaan tugas. Ada dua kategori file crontab:
1) File crontab seluruh sistem
Ini biasanya digunakan oleh layanan Linux &aplikasi penting yang membutuhkan hak akses root. File crontab sistem terletak di /etc/crontab dan hanya dapat diakses dan diedit oleh pengguna root. Biasanya digunakan untuk konfigurasi daemon seluruh sistem. File crontab terlihat seperti yang ditunjukkan:
2) File crontab buatan pengguna
Pengguna Linux juga dapat membuat pekerjaan cron mereka sendiri dengan bantuan perintah crontab. Pekerjaan cron yang dibuat akan dijalankan sebagai pengguna yang membuatnya.
Semua tugas cron disimpan di /var/spool/cron (Untuk distro RHEL dan CentOS) dan /var/spool/cron/crontab (Untuk distro Debian dan Ubuntu), tugas cron terdaftar menggunakan nama pengguna pengguna yang membuat tugas cron
daemon cron berjalan tanpa suara di latar belakang memeriksa /etc/crontab file dan /var/spool/cron dan /etc/cron.d*/ direktori
crontab Perintah ini digunakan untuk mengedit file cron. Mari kita lihat anatomi file crontab.
Anatomi file crontab
Sebelum kita melangkah lebih jauh, penting bagi kita untuk mengeksplorasi terlebih dahulu bagaimana tampilan file crontab. Sintaks dasar untuk file crontab terdiri dari 5 kolom yang diwakili oleh tanda bintang diikuti dengan perintah yang akan dijalankan.
* * * * * perintah
Format ini juga dapat direpresentasikan seperti yang ditunjukkan di bawah ini:
perintah m h d moy dow
ATAU
m h d moy dow /path/to/script
Mari kita uraikan setiap entri
- m :Ini mewakili menit. Ini ditentukan dari 0 hingga 59
- h :Ini menunjukkan jam yang ditentukan dari 0 hingga 23
- d : Ini mewakili hari dalam sebulan. Ditentukan antara 1 hingga 31`
- moy :Ini adalah bulan dalam setahun. Ini ditentukan antara 1 hingga 12
- hey : Ini adalah hari dalam seminggu. Ini ditentukan antara 0 dan 6 di mana 0 =Minggu
- Perintah :Ini adalah perintah yang akan dijalankan misalnya perintah backup, reboot, ©
Mengelola tugas cron
Setelah melihat arsitektur file crontab, mari kita lihat bagaimana Anda dapat membuat, mengedit, dan menghapus tugas cron
Membuat tugas cron
Untuk membuat atau mengedit tugas cron sebagai pengguna root, jalankan perintah
# crontab -e
Untuk membuat tugas cron atau menjadwalkan tugas sebagai pengguna lain, gunakan sintaks
# crontab -u nama pengguna -e
Misalnya, untuk menjalankan tugas cron sebagai pengguna Pradeep, jalankan perintah:
# crontab -u Pradeep -e
Jika tidak ada file crontab yang sudah ada sebelumnya, maka Anda akan mendapatkan dokumen teks kosong. Jika file crontab sudah ada, Opsi -e memungkinkan untuk mengedit file,
Mencantumkan file crontab
Untuk melihat tugas cron yang telah dibuat, cukup berikan opsi -l seperti yang ditunjukkan
# crontab -l
Menghapus file crontab
Untuk menghapus file cron, cukup jalankan crontab -e dan hapus atau baris cron job yang Anda inginkan dan simpan file tersebut.
Untuk menghapus semua tugas cron, jalankan perintah:
# crontab -r
Karena itu, mari kita lihat berbagai cara untuk menjadwalkan tugas
Contoh Crontab dalam Menjadwalkan tugas.
Semua pekerjaan cron dengan header Shebang seperti yang ditunjukkan
#!/bin/bash
Ini menunjukkan shell yang Anda gunakan, yang dalam hal ini adalah shell bash.
Selanjutnya, tentukan interval di mana Anda ingin menjadwalkan tugas menggunakan entri cron job yang kami tentukan sebelumnya.
Untuk mem-boot ulang sistem setiap hari pada pukul 12:30, gunakan sintaks:
30 12 * * * /sbin/reboot
Untuk menjadwalkan reboot pada jam 4:00 pagi gunakan sintaks:
0 4 * * * /sbin/reboot
CATATAN: Tanda bintang * digunakan untuk mencocokkan semua record
Untuk menjalankan skrip dua kali setiap hari, misalnya, 4:00 pagi dan 4:00 sore, gunakan sintaks.
0 4,16 * * * /path/to/script
Untuk menjadwalkan tugas cron agar berjalan setiap hari Jumat pukul 17.00 gunakan sintaks:
0 17 * * Jum /path/to/script
ATAU
0 17 * * * 5 /path/to/script
Jika Anda ingin menjalankan tugas cron Anda setiap 30 menit, gunakan:
*/30 * * * * /path/to/script
Untuk menjadwalkan cron agar berjalan setiap 5 jam, jalankan
* */5 * * * /path/to/script
Untuk menjalankan skrip pada hari yang dipilih, misalnya Rabu dan Jumat pukul 18.00, jalankan:
0 18 * * rabu,jumat /path/to/script
Untuk menjadwalkan beberapa tugas untuk menggunakan satu tugas cron, pisahkan tugas menggunakan titik koma misalnya:
* * * * * /path/to/script1; /path/to/script2
Menggunakan string khusus untuk menghemat waktu menulis tugas cron
Beberapa pekerjaan cron dapat dengan mudah dikonfigurasi menggunakan string khusus yang sesuai dengan interval waktu tertentu. Misalnya,
1) @stempel waktu setiap jam sesuai dengan 0 * * * *
Ini akan menjalankan tugas di menit pertama setiap jam.
@hourly /path/to/script
2) @stempel waktu harian setara dengan 0 0 * * *
Ini menjalankan tugas di menit pertama setiap hari (tengah malam). Ini sangat berguna saat menjalankan pekerjaan sehari-hari.
@daily /path/to/script
3) stempel waktu @weekly sama dengan 0 0 1 * mon
Ini menjalankan tugas cron di menit pertama setiap minggu di mana satu minggu, satu minggu dimulai pada hari Senin.
@weekly /path/to/script
3) @monthly mirip dengan entri 0 0 1 * *
Itu melakukan tugas di menit pertama hari pertama bulan itu.
@bulanan /path/to/script
4) @tahunan sama dengan 0 0 1 1 *
Ini menjalankan tugas di menit pertama setiap tahun dan berguna dalam mengirim salam Tahun Baru 🙂
@bulanan /path/to/script
Pembatasan Crontab
Sebagai pengguna Linux, Anda dapat mengontrol siapa yang berhak menggunakan perintah crontab. Ini dimungkinkan menggunakan /etc/cron.deny dan /etc/cron.allow mengajukan. Secara default, hanya file /etc/cron.deny yang ada dan tidak berisi entri apa pun. Untuk membatasi pengguna menggunakan utilitas crontab, cukup tambahkan nama pengguna pengguna ke file. Saat pengguna ditambahkan ke file ini, dan pengguna mencoba menjalankan perintah crontab, dia akan menemukan kesalahan di bawah ini.
Agar pengguna dapat terus menggunakan utilitas crontab, cukup hapus nama pengguna dari file /etc/cron.deny.
Jika file /etc/cron.allow ada, maka hanya pengguna yang terdaftar dalam file yang dapat mengakses dan menggunakan utilitas crontab.
Jika tidak ada file, maka hanya pengguna root yang memiliki hak istimewa untuk menggunakan perintah crontab.
Mencadangkan entri crontab
Itu selalu disarankan untuk membuat cadangan entri crontab Anda. Untuk melakukannya, gunakan sintaks
# crontab -l> /path/to/file.txt
Misalnya,
# crontab -l > /home/james/backup.txt
Memeriksa log cron
Log cron disimpan di file /var/log/cron. Untuk melihat log cron jalankan perintah:
# cat /var/log/cron
Untuk melihat log langsung, gunakan perintah tail seperti yang ditunjukkan:
# tail -f /var/log/cron
Kesimpulan
Dalam panduan ini, Anda mempelajari cara membuat tugas cron untuk mengotomatiskan tugas yang berulang, cara mencadangkan, serta cara melihat log cron. Kami berharap artikel ini memberikan wawasan yang bermanfaat terkait dengan pekerjaan cron. Jangan ragu untuk memberikan masukan dan komentar Anda.