Jika Anda bekerja di bidang TI, Anda mungkin perlu menjadwalkan berbagai tugas berulang sebagai bagian dari proses otomatisasi Anda.
Misalnya, Anda dapat menjadwalkan pekerjaan tertentu untuk dilaksanakan secara berkala pada waktu tertentu dalam sehari. Ini berguna untuk melakukan pencadangan harian, pengarsipan log bulanan, penghapusan file mingguan untuk menambah ruang, dan sebagainya.
Dan jika Anda menggunakan Linux sebagai OS Anda, Anda akan menggunakan sesuatu yang disebut tugas cron untuk mewujudkannya.
Apa itu cron?
Cron adalah utilitas penjadwalan pekerjaan yang ada di sistem mirip Unix. Daemon crond mengaktifkan fungsionalitas cron dan berjalan di latar belakang. Cron membaca crontab (tabel cron) untuk menjalankan skrip yang telah ditentukan sebelumnya.
Dengan menggunakan sintaks tertentu, Anda dapat mengonfigurasi tugas cron untuk menjadwalkan skrip atau perintah lain agar berjalan secara otomatis.
Untuk pengguna perorangan, layanan cron memeriksa file berikut: /var/spool/cron /crontab
Apa pekerjaan cron di Linux?
Tugas apa pun yang Anda jadwalkan melalui cron disebut tugas cron. Pekerjaan cron membantu kita mengotomatiskan tugas-tugas rutin kita, baik itu per jam, harian, bulanan, atau tahunan.
Sekarang, mari kita lihat cara kerja cron jobs.
Cara Mengontrol Akses ke crons
Untuk menggunakan tugas cron, admin harus mengizinkan tugas cron ditambahkan untuk pengguna di file ‘/etc/cron.allow’.
Jika Anda mendapatkan prompt seperti ini, berarti Anda tidak memiliki izin untuk menggunakan cron.
Untuk mengizinkan John menggunakan cron, sertakan namanya di ‘/etc/cron.allow‘. Ini akan memungkinkan John membuat dan mengedit pekerjaan cron.
Pengguna juga dapat ditolak aksesnya ke akses pekerjaan cron dengan memasukkan nama pengguna mereka di file ‘/etc/cron.d/cron.deny‘.
Cara Menambahkan Job cron di Linux
Pertama, untuk menggunakan tugas cron, Anda perlu memeriksa status layanan cron. Jika cron tidak diinstal, Anda dapat dengan mudah mendownloadnya melalui manajer paket. Cukup gunakan ini untuk memeriksa:
# Check cron service on Linux system
sudo systemctl status cron.service
Sintaks pekerjaan Cron
Crontab menggunakan tanda berikut untuk menambahkan dan membuat daftar tugas cron.
crontab -e
: mengedit entri crontab untuk menambah, menghapus, atau mengedit tugas cron.crontab -l
: daftar semua pekerjaan cron untuk pengguna saat ini.crontab -u username -l
: mencantumkan cron pengguna lain.crontab -u username -e
: mengedit cron pengguna lain.
Saat Anda membuat daftar cron, Anda akan melihat sesuatu seperti ini:
# Cron job example
* * * * * sh /path/to/script.sh
Dalam contoh di atas,
- * * * * * masing-masing mewakili menit, jam, hari, bulan, hari kerja.
Menit | 0-59 | Perintah akan dieksekusi pada menit tertentu. |
Jam | 0-23 | Perintah akan dieksekusi pada jam tertentu. |
hari | 1-31 | Perintah akan dilaksanakan pada hari-hari ini dalam beberapa bulan. |
Bulan | 1-12 | Bulan di mana tugas harus dilaksanakan. |
hari kerja | 0-6 | Hari dalam seminggu di mana perintah akan dijalankan. Di sini, 0 adalah hari Minggu. |
sh
menyatakan bahwa skrip tersebut adalah skrip bash dan harus dijalankan dari/bin/bash
./path/to/script.sh
menentukan jalur ke skrip.
Di bawah ini adalah ringkasan sintaks pekerjaan cron.
* * * * * sh /path/to/script/script.sh
| | | | | |
| | | | | Command or Script to Execute
| | | | |
| | | | |
| | | | |
| | | | Day of the Week(0-6)
| | | |
| | | Month of the Year(1-12)
| | |
| | Day of the Month(1-31)
| |
| Hour(0-23)
|
Min(0-59)
a
Contoh pekerjaan cron
Di bawah ini adalah beberapa contoh penjadwalan tugas cron.
JADWAL | NILAI TERJADWAL |
---|---|
5 0*8* | Pukul 00:05 di bulan Agustus. |
5 4* *6 | Pukul 04:05 pada hari Sabtu. |
0 22* *1-5 | Pukul 22.00 setiap hari dalam seminggu dari Senin sampai Jumat. |
Tidak apa-apa jika Anda tidak dapat memahami semuanya sekaligus. Anda dapat berlatih dan membuat jadwal cron dengan crontab guru .
Cara mengatur pekerjaan cron
Pada bagian ini, kita akan melihat contoh bagaimana menjadwalkan skrip sederhana dengan tugas cron.
- Buat skrip bernama
date-script.sh
yang mencetak tanggal dan waktu sistem dan menambahkannya ke file. Skripnya ditunjukkan di bawah ini:
2. Jadikan skrip dapat dieksekusi dengan memberinya hak eksekusi.
chmod 775 date-script.sh
3. Tambahkan script di crontab menggunakan crontab -e
.
Di sini, kami telah menjadwalkannya untuk berjalan per menit.
4. Periksa keluaran file date-out.txt
. Menurut skrip, tanggal sistem harus dicetak ke file ini setiap menit.
Cara Mengatasi Masalah cron
Cron sangat membantu, tetapi mungkin tidak selalu berfungsi sebagaimana mestinya. Untungnya, ada beberapa metode efektif yang dapat Anda gunakan untuk memecahkan masalah tersebut.
- Periksa jadwalnya.
Pertama, Anda dapat mencoba memverifikasi jadwal yang ditetapkan untuk cron. Anda dapat melakukannya dengan sintaks yang Anda lihat di bagian atas.
2. Periksa log cron.
Pertama, Anda perlu memeriksa apakah cron telah berjalan pada waktu yang ditentukan atau tidak. Anda dapat memverifikasi ini dari log cron yang terletak di var/log/cron
. Di beberapa distro, log dapat ditemukan di/var/log/syslog
Jika ada entri di log ini pada waktu yang tepat, berarti cron telah berjalan sesuai jadwal yang Anda tetapkan.
Di bawah ini adalah log contoh tugas cron kami. Perhatikan kolom pertama yang menunjukkan stempel waktu. Jalur skrip juga disebutkan di akhir baris.
3. Redirect output cron ke file.
Anda dapat mengarahkan output cron ke sebuah file dan memeriksa kemungkinan kesalahan pada file tersebut.
# Redirect cron output to a file
* * * * * sh /path/to/script.sh &> log_file.log
Penutup
Mengotomatiskan tugas, seperti pekerjaan cron, mengurangi pekerjaan berulang yang perlu Anda lakukan. Hal ini juga memungkinkan mesin pulih secara otomatis dan bekerja sepanjang waktu tanpa campur tangan manusia.
Makasih gan atas informasinya