Cron adalah daemon penjadwalan pekerjaan berbasis waktu di sistem operasi berbasis Linux. Ini digunakan untuk menjadwalkan tugas-tugas tertentu untuk dijalankan secara berkala pada waktu, tanggal, atau interval yang tetap. Ini sangat mirip dengan utilitas penjadwalan tugas Windows dan sangat berguna untuk tugas-tugas rutin termasuk:
- Cadangan harian
- Pemindaian sistem
- Pemeliharaan sistem otomatis
Daemon cron berjalan di latar belakang dan terus-menerus memeriksa file /etc/crontab, dan direktori /etc/cron.*/.
Sintaks Crontab
Sintaks dasar file crontab ditunjukkan di bawah ini:
M H DOM MON DOW USER COMMAND * * * * * root command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
- Menit (M) ditentukan sebagai angka dari 0 hingga 59.
- Jam (J) ditentukan sebagai angka dari 0 hingga 23.
- Hari dalam sebulan (DOM) ditentukan sebagai angka dari 1 hingga 31.
- Bulan (SEN) ditentukan sebagai angka dari 1 hingga 12.
- Hari dalam seminggu (DOW) ditentukan sebagai angka dari 0 hingga 7, dengan hari Minggu direpresentasikan sebagai salah satu/keduanya 0 dan 7.
Perintah Crontab
Beberapa perintah crontab yang umum digunakan ditunjukkan di bawah ini:
- crontab -e :Digunakan untuk mengedit atau membuat file crontab baru.
- crontab -l :Digunakan untuk menampilkan isi dari file crontab.
- crontab -i :Digunakan untuk menghapus file crontab saat ini dengan perintah sebelum dihapus.
- crontab -r :Digunakan untuk menghapus file crontab saat ini tanpa prompt.
- crontab -u :Digunakan untuk mengedit file crontab pengguna lain.
1. Jadwalkan cron untuk dieksekusi pada jam 10 pagi Tugas harian
Jika Anda ingin menjalankan skrip bernama /opt/test.sh setiap hari pada jam 10 pagi, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
0 10 * * * /bin/sh /opt/test.sh
2. Jadwalkan cron untuk dieksekusi setiap 5 menit
Untuk menjalankan skrip test.sh setiap 5 menit, arahkan output standar ke /dev/null, dan kirim kesalahan ke alamat email tertentu, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
[email protected] */5 * * * * /bin/sh /opt/test.sh > /dev/null
3. Jadwalkan cron untuk dieksekusi setiap hari, setiap jam, dari jam 10 pagi hingga 6 sore
Untuk menjalankan skrip test.sh setiap hari, setiap jam, pada jam 10 pagi hingga 6 sore, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
00 10-18 * * * /bin/sh /opt/test.sh
4. Jadwalkan cron untuk dieksekusi pada pukul 10 pagi pada tanggal satu setiap bulan
Untuk menjalankan skrip test.sh pada pukul 10 pagi pada hari pertama setiap bulan, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
00 10 1 * * /bin/sh /opt/test.sh
5. Jadwalkan cron untuk dieksekusi pada 10 menit setelah tengah malam dan setiap tiga jam setelah itu, setiap hari
Untuk menjalankan skrip test.sh pada 10 menit setelah tengah malam dan setiap 3 jam setelah itu, setiap hari, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
10 0-23/3 * * * /bin/sh /opt/test.sh
6. Jadwalkan cron untuk dieksekusi pada hari tertentu
Untuk menjalankan skrip test.sh setiap hari Senin dan Jumat pukul 6 sore, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
0 18 * * mon,fri /bin/sh /opt/test.sh
7. Jadwalkan cron untuk mengeksekusi banyak skrip
Untuk menjalankan skrip test.sh dan test1.sh pada interval 2 jam, jalankan perintah berikut:
crontab -e
Tambahkan baris berikut:
0 */2 * * * /bin/sh /opt/test.sh; /bin/sh /opt/test1.sh
8. Jadwalkan cron untuk dieksekusi setiap minggu, bulan, atau tahun
Untuk menjalankan test.sh setiap minggu, tambahkan baris berikut:
@weekly /bin/sh /opt/test.sh
Untuk menjalankan test.sh setiap bulan, tambahkan baris berikut:
@monthly /bin/sh /opt/test.sh
Untuk menjalankan test.sh setiap tahun, tambahkan baris berikut:
@yearly /bin/sh /opt/test.sh
Kesimpulan
Dalam panduan di atas, Anda mempelajari apa itu cron dan bagaimana menggunakannya, dengan beberapa contoh. Mulai gunakan tugas cron untuk mengotomatiskan tugas harian hari ini dengan hosting VPS dari Atlantic.Net!