Crontab di Linux

Crontab di Linux

Mari jelajahi crontab, perintahnya, dan berbagai operasi yang terkait dengan Crontab.

Kita akan belajar bagaimana menjadwalkan tugas menggunakan utilitas cron, dan terakhir, kita juga akan membahas beberapa alat online yang membantu kita dalam memformat dan menguji perintah cron.

Asal Muasal Crontab

Crontab adalah singkatan dari ” tabel cron “. Kata cron diambil dari kata Yunani Chronos yang berarti waktu. Crontab adalah proses daemon sistem yang secara otomatis akan melakukan beberapa tugas dan pekerjaan sesuai waktu yang dijadwalkan.

Crontab adalah singkatan dari ” tabel cron “. Kata cron diambil dari kata Yunani Chronos yang berarti waktu. Crontab adalah proses daemon sistem yang secara otomatis akan melakukan beberapa tugas dan pekerjaan sesuai waktu yang dijadwalkan.

Kasus penggunaan

Crontab berguna untuk melakukan berbagai operasi seperti menangani pencadangan otomatis, memutar file log, menyinkronkan file antara mesin jarak jauh dan membersihkan folder sementara, dll. Crontab dapat digunakan untuk segala jenis pekerjaan, tetapi ini menjadi sangat berguna ketika kita mulai menangani jenis pekerjaan administrasi sistem .

Dengan menggunakan cron, administrator dapat menjadwalkan pekerjaan untuk dijalankan pada waktu dan hari tertentu.

Jadi mari kita lihat bagaimana kita bisa mengaturnya.

Sintaks Crontab

Untuk menjalankan daftar perintah, utilitas cron membaca file konfigurasi. Untuk menafsirkan baris dalam tabel konfigurasi crontab , ini mengikuti sintaks Crontab. Crontab memiliki enam kolom, dan lima kolom (1-5) pertama menentukan tanggal dan waktu eksekusi. Bidang terakhir, yaitu bidang ke-6, bisa berupa nama pengguna dan / atau tugas / pekerjaan / perintah / skrip yang akan dijalankan.

* * * * * USER_NAME COMMAND / SCRIPT-TO-EXECUTE

│ │ │ │ │
│ │ │ │ │
│ │ │ │      | _________    Hari dalam Seminggu (0 - 6) (0 adalah hari Minggu, atau gunakan nama)
│ │ │ | ____________  Bulan (1 - 12), * berarti setiap bulan
│ │ | ______________   Day of Month (1 - 31), * berarti setiap hari
│ | ________________  Jam (0 - 23), * berarti setiap jam
| ___________________ Menit (0 - 59), * berarti setiap menit

Catatan :

  • Tanda bintang (*) digunakan untuk mencocokkan semua nilai yang mungkin untuk bidang. Misalnya, tanda bintang yang digunakan di bidang jam akan sama dengan setiap jam atau tanda bintang di bidang bulan akan sama dengan setiap bulan.
  • nama pengguna adalah opsional (hanya tersedia jika itu adalah file crontab sistem)

Contoh:

Mari kita pahami sintaks di atas dengan beberapa contoh

1. Jadwalkan cron untuk dieksekusi pada jam 5 pagi setiap hari

0 5 * * * /scripts/job.sh

2. Jadwalkan cron untuk mengeksekusi dua kali sehari pada pukul 6 pagi dan 6 sore

0 6,18 * * * /scripts/job.sh

3. Jadwalkan cron untuk dieksekusi setiap menit

* * * * * /scripts/job.sh

4. Jadwalkan cron untuk dieksekusi setiap hari Senin pukul 7 malam.

0 19 * * mon /scripts/job.sh

5. Jadwalkan cron untuk dieksekusi setiap 15 menit.

*/10 * * * * /scripts/job.sh

6. Jadwalkan cron untuk dieksekusi pada bulan-bulan tertentu

* * * feb,jun,oct * /script/job.sh

7. Jalankan skrip shell /home/script/backup.shpada 4 Maret pukul 7:25 pagi

25 7 4 3 * /home/script/backup.sh

8. Jadwalkan cron untuk mengeksekusi setiap 30 Detik

Karena kami tidak memiliki kendali atas detik di Crontab, tetapi kami dapat mencapainya melalui proses dua langkah di bawah ini.

Mari kita jadwalkan tugas yang berjalan setiap menit.

* * * * * /home/scripts/script.sh

Sekarang mari kita gunakan sleepperintah untuk menjeda eksekusi selama 30 detik.

* * * * * sleep 30; /home/scripts/script.sh

Tugas di atas akan menghentikan eksekusi selama 30 detik, dan akan dilanjutkan kembali.

Jenis file konfigurasi Cron

Ada dua jenis file konfigurasi Cron:

Crontab Sistem UNIX / Linux

Ini membutuhkan hak akses root karena biasanya digunakan untuk layanan sistem dan pekerjaan penting. Bidang keenam (dalam deskripsi sintaks di atas) adalah nama pengguna untuk menjalankan perintah sebagai. Ini memberi kemampuan pada crontab sistem untuk menjalankan perintah sebagai pengguna mana pun.

Crontab Pengguna

Pengguna juga dapat menginstal tugas cron mereka sendiri menggunakan perintah crontab. Di sini juga, bidang keenam (dalam deskripsi sintaks di atas) adalah perintah untuk dijalankan, dan semua perintah dijalankan sebagai pengguna yang membuat crontab. Setiap pengguna dapat memiliki file crontab mereka sendiri, dan meskipun ini adalah file di /var/spool/cron/crontab, mereka tidak dimaksudkan untuk diedit secara langsung. Kita perlu menggunakan perintah crontab untuk mengedit atau menyiapkan cron job kita sendiri.

Bagaimana cara kerjanya?

Layanan cron (daemon) berjalan di latar belakang dan terus-menerus memeriksa (setiap menit) /etc/crontabfile, dan /etc/cron.*/direktori. Ini juga memeriksa /var/spool/cron/direktori. Perintah dijalankan oleh  cron ketika bidang menit, jam, dan bulan cocok dengan waktu saat ini, dan setidaknya satu dari bidang dua hari (hari dalam sebulan, atau hari dalam seminggu) cocok dengan hari ini.

Perintah Dasar

Mencantumkan Pekerjaan Cron yang Ada

Kami dapat membuat daftar semua pekerjaan Cron tanpa membuka file konfigurasi crontab menggunakan perintah di bawah ini

crontab -l

Jika tidak ada pekerjaan yang ada, itu akan mengembalikan keluaran sebagai

❯ crontab -l
no crontab for ping

Buat daftar Cron untuk pengguna tertentu

Untuk membuat daftar pekerjaan terjadwal dari pengguna lain, gunakan opsi sebagai  -u  ( Pengguna ) dan  -l  ( Daftar ).

crontab -u another_username -l

Contoh :crontab -u ping -l

Tambahkan / Ubah Entri Crontab

Untuk mengedit entri crontab, kita dapat menggunakan -eopsi seperti yang ditunjukkan di bawah ini.

crontab -e

Perintah di atas akan membuka editor vi di mana Anda menentukan detail pekerjaan dan menyimpan file. Setelah disimpan, Anda dapat memverifikasi apakah cron dikonfigurasi atau tidak dengan crontab -l.

Tambahkan / Ubah Entri Crontab untuk Pengguna Tertentu

Kita dapat mengedit crontab untuk pengguna lain menggunakan perintah di bawah ini

crontab -u user_pengguna -e

Contoh :crontab -u ping -e

Hapus Entri Crontab

Gunakan -rparameter dengan Crontab untuk menghapus pekerjaan terjadwal yang lengkap tanpa konfirmasi dari crontab

crontab -r

Jika Anda menginginkan konfirmasi sebelum menghapus pekerjaan terjadwal, gunakan  -iopsi with -r, yang akan meminta konfirmasi dari pengguna sebelum menghapus crontab pengguna.

crontab -i -r
# crontab -i -r
crontab: really delete ping crontab?

String Khusus Crontab

Selain sintaks di atas yang telah kita bahas, kita juga dapat menggunakan delapan string khusus yang disediakan oleh Crontab. Ini tidak hanya akan menghemat waktu kita tetapi juga akan meningkatkan keterbacaan.

String Khusus	Deskripsi
@reboot	Jalankan sekali, setelah startup.
@yearly	Jalankan setahun sekali, yaitu 0 0 1 1 *
@annually	Sama dengan @yearly
@monthly	Jalankan sebulan sekali yaitu 0 0 1 * *
@weekly	Jalankan seminggu sekali yaitu 0 0 * * 0
@daily	Jalankan sekali sehari yaitu 0 0 * * *
@midnight	Sama dengan @daily
@hourly	Jalankan sekali dalam satu jam yaitu, 0 * * * *

Contoh String Khusus Crontab

1. Crontab untuk menjadwalkan tugas setiap tahun

@yearly /scripts/hapus.sh

Kita dapat mengeksekusi di atas untuk mengirim ucapan tahun baru, Ini akan dieksekusi pada menit pertama setiap tahun.

2. Crontab untuk menjadwalkan tugas yang akan dilaksanakan setiap bulan.

@monthly /scripts/cleanup.sh

Langkah di atas dapat kita lakukan untuk melakukan beberapa aktivitas pembersihan di awal setiap bulan.

Demikian pula, kita dapat menggunakan string khusus Crontab lainnya untuk keperluan mingguan, harian, dan per jam.

Direktori Cron

Administrator sistem dapat menggunakan jadwal cron seluruh sistem yang berada di bawah direktori cron yang telah ditentukan seperti yang ditunjukkan di bawah ini

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

Contoh Crontab Realtime

Mari kita bahas beberapa contoh real-time, yang biasanya digunakan oleh administrator sistem atau profesional TI.

Hapus file dan direktori kosong

45 0 * * * ping find /tmp -type f -empty -delete

Di atas ekspresi cron akan menemukan file dan direktori kosong dari direktori / tmp dan itu akan menghapusnya. Pekerjaan ini akan berjalan pada jam 12.45 setiap hari. Kami perlu menyebutkan nama pengguna untuk melakukan pekerjaan ini. Dalam contoh di atas, pengguna geekflare sedang melakukan operasi tugas cron.

Jalankan beberapa tugas menggunakan satu cron

* * * * * /home/scripts/backup.sh; /home/scripts/scritp.sh

Beberapa tugas / pekerjaan dapat dipisahkan menggunakan titik koma ( ; ) dan dapat ditetapkan ke ekspresi cron tunggal.

Alat pemformatan & pengujian Cron

Sejauh ini kita membahas perintah dan sintaks crontab untuk menjadwalkan tugas. Tetapi bagaimana jika Anda bukan administrator sistem dan tugas Anda bukan untuk mengatur Cron secara teratur, ini mungkin tidak dapat mengingat sintaks dan membuka ruang untuk kesalahan. Jangan khawatir, kami memiliki solusi untuk masalah ini.

Ada beberapa alat pemformatan Cron yang tersedia online.

Alat pemformatan & pengujian Cron

Sejauh ini kita membahas perintah dan sintaks crontab untuk menjadwalkan tugas. Tetapi bagaimana jika Anda bukan administrator sistem dan tugas Anda bukan untuk mengatur Cron secara teratur, ini mungkin tidak dapat mengingat sintaks dan membuka ruang untuk kesalahan. Jangan khawatir, kami memiliki solusi untuk masalah ini.

Ada beberapa alat pemformatan Cron yang tersedia online.

# 1. Generator Pekerjaan Cron

Cron Job Generator adalah GUI yang sangat mudah digunakan di mana Anda dapat menentukan menit, hari, dan jalur skrip untuk menghasilkan crontab.

Mari kita ambil contoh real-time di mana saya harus mengeksekusi /home/processMonitor.sh setiap 5 menit antara Senin hingga Jumat.

Jadi, saya mendapatkan sintaks Cron di bawah ini yang dapat saya masukkan ke crontab saya dengan menjalankan

crontab –e
0,5,10,15,20,25,30,35,40,45,50,55 * * * 1-5 /home/processMonitor.sh

# 2. Easycron

Easycron adalah penjadwal tugas cron berbasis web yang berguna. Kita dapat membuat cron job dengan menentukan URL yang akan dipanggil , kita dapat mengatur waktu kapan harus dijalankan. Kami juga dapat menentukan ekspresi cron atau menambahkannya secara manual dari bentuk deskriptif. Yang penting, kami secara opsional dapat menggunakan otentikasi HTTP dasar untuk lapisan keamanan kecil.

Tidak hanya itu, Easycron juga dapat digunakan untuk mencapai tujuan lain seperti ekspresi Cron Standar, Log Eksekusi Tugas Cron, Pemberitahuan Email, Log Kegagalan Terpisah, dll.

# 3. Generator Crontab

Crontab Generator adalah alat praktis lainnya untuk menghasilkan crontab dan dengan alat ini, Anda juga dapat menambahkan jika ingin menyimpan keluaran cron ke file atau mengirimkannya ke email.

# 4. GUI Crontab

Crontab GUI adalah editor crontab online asli. Ini sepenuhnya dioptimalkan pada perangkat seluler juga sehingga Anda dapat membuat cron saat dalam perjalanan.

# 5. Guru Crontab

Crontab Guru adalah editor ekspresi jadwal cron online sederhana. Selain itu, ini memberikan cara yang berguna untuk memantau cronjob Anda. Yang perlu kita lakukan adalah menyalin perintah yang disediakan dan menambahkan di akhir definisi crontab. Jika pekerjaan cron gagal atau bahkan tidak dimulai, Anda akan menerima email peringatan.

Dalam contoh di bawah ini, Pekerjaan akan dijalankan pada pukul 04:05 , setiap hari, setiap bulan dan setiap minggu.

Kesimpulan

Saya harap hal di atas membantu Anda mendapatkan pemahaman yang lebih baik tentang Crontab dan menyiapkan cron job. Menjadwalkan pekerjaan melalui Cron adalah salah satu dari banyak tugas yang dilakukan oleh Admin Linux.

Tinggalkan Balasan