Crontab adalah alat Linux penting yang digunakan untuk menjadwalkan tugas sehingga program dan skrip dapat dieksekusi pada waktu tertentu. Dalam artikel ini, saya akan mengajari Anda cara menjadwalkan pekerjaan di Debian 10 dan menunjukkan beberapa contohnya.
Prasyarat
Anda harus memiliki hak akses root sebelum melanjutkan lebih jauh.
Menginstal Cron dan Crontab
Di Debian 10 saya, cron diinstal secara default. Namun, jika tidak diinstal pada mesin Anda, jalankan beberapa perintah berikut di terminal dengan hak akses root.
apt-get update
apt-get install cron
Untuk mendapatkan daftar tugas cron yang sudah dijadwalkan di mesin Anda, jalankan perintah berikut di terminal.
crontab -l
Membuka crontab dengan editor teks
Untuk membuka crontab dengan editor teks, jalankan perintah berikut dengan hak akses root.
crontab -e
Segera setelah perintah dijalankan, Anda akan diminta untuk memilih editor teks seperti yang ditunjukkan pada tangkapan layar berikut.
Perintah crontab -e membuka crontab dari pengguna yang saat ini masuk, yang merupakan pengguna root dalam contoh saya. Untuk membuka crontab pengguna lain, misalkan pengguna 'tom', tambahkan tanda -u diikuti dengan nama pengguna. Contoh:
crontab -e -u tom
Sintaks crontab
Crontab Linux memiliki enam bidang seperti yang ditunjukkan di bawah ini.
* * * * * /path/to/script.sh
Masing-masing bidang memiliki arti sebagai berikut.
[Menit] [jam] [Hari_Bulan_] [Bulan_Tahun_] [Hari_Pekan] [perintah]
Menit 0 – 59
Jam 0 – 23
Hari bulan 1 – 31
Bulan tahun 1 – 12
Hari dalam seminggu 0 – 7
Contoh dasar tugas cron
Berikut adalah beberapa contoh tugas cron.
1. Jadwalkan tugas cron untuk dieksekusi pada pukul 2 pagi setiap hari
0 2 * * * /bin/sh backup.sh
Pekerjaan cron di atas akan dijalankan setiap hari pada pukul 2 pagi dan akan menjalankan skrip backup.sh. Ini akan mempertahankan cadangan setiap hari.
2. Jadwalkan tugas cron untuk dijalankan dua kali sehari
0 5,17 * * * /scripts/script.sh
Pekerjaan cron di atas akan dieksekusi pada jam 5 pagi dan 5 sore setiap hari. Beberapa kali dapat ditentukan dengan bantuan koma.
3. Jadwalkan tugas cron untuk dieksekusi setiap menit
* * * * * scripts/script.sh
Pekerjaan cron di atas akan dijalankan setiap menit.
4. Jadwalkan tugas cron untuk dieksekusi setiap hari Minggu jam 5 sore
0 17 * * sun /scripts/script.sh
Pekerjaan cron di atas akan dijalankan setiap hari Minggu jam 5 sore. Jenis cron ini berguna untuk melakukan tugas mingguan seperti rotasi log dll.
5. Jadwalkan tugas cron untuk dijalankan setiap 10 menit
Jika Anda ingin tugas Anda dijalankan setiap 10 menit, cron perlu diperbarui sebagai berikut.
*/10 * * * * /scripts/monitor.sh
'*/10' artinya lari setiap 10 menit.
6. Jadwalkan tugas cron untuk dijalankan pada bulan tertentu
Misalkan Anda ingin menjalankan cron pada bulan Januari, Mei, dan Agustus, tugas cron perlu disiapkan sebagai berikut.
* * * jan,may,aug * /script/script.sh
Sekali lagi beberapa bulan dapat ditentukan dengan koma.
7. Jadwalkan tugas cron untuk dijalankan pada hari yang dipilih
Jika Anda ingin tugas cron Anda dieksekusi pada hari-hari tertentu, misalkan Minggu dan Jumat pukul 5 sore, maka tampilannya akan seperti berikut.
0 17 * * sun,fri /script/script.sh
8. Jadwalkan banyak tugas dalam satu tugas cron
Beberapa skrip dapat dijalankan dalam satu tugas sebagai berikut. Kedua skrip harus dipisahkan dengan titik koma.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
9. Jadwalkan tugas cron untuk dijalankan setiap 30 detik
Untuk menjadwalkan tugas cron agar dieksekusi setiap 30 detik, kita perlu menyiapkan dua cron sebagai berikut:
* * * * * /scripts/script.sh * * * * * sleep 30; /scripts/script.sh
10. Jadwalkan tugas cron untuk dieksekusi dua kali setiap hari Minggu dan Senin
Jika Anda ingin menjadwalkan tugas untuk dieksekusi dua kali pada pukul 4 pagi dan 5 sore setiap hari Minggu dan Senin, cronjob akan terlihat seperti ini:
0 4,17 * * sun,mon /scripts/script.sh
Keduanya, jam dan minggu dalam sehari telah dipisahkan dengan koma.
Kesimpulan
Terima kasih telah membaca artikel tentang pekerjaan cron ini. Semoga harimu menyenangkan!!