Cron adalah penjadwal pekerjaan berbasis waktu, dikonfigurasi untuk menjalankan perintah pada waktu atau interval tertentu. Setiap Pengguna memiliki tabel cron yang mendefinisikan apa yang harus dijalankan dan pada interval apa. crontab perintah digunakan untuk membuat, memodifikasi, dan melihat tugas cron.
Konfigurasi file dan direktori
– Cron dikendalikan oleh sekumpulan file yang disebut crontabs.
– Ada file master di /etc/crontab , bersama dengan file crontab untuk pengguna di /var/spool/cron/ . Di direktori terakhir, file diberi nama yang sama dengan nama pengguna pengguna.
– File /etc/crontab secara otomatis mengeksekusi item di beberapa subdirektori secara berkala. Script ditempatkan di berbagai direktori – /etc/cron.* dijalankan sesuai interval waktu yang diberikan di bawah ini. Semua skrip di direktori ini dijalankan dengan hak akses root.
Direktori | Waktu |
---|---|
/etc/cron.hourly | Menit pertama setiap jam |
/etc/cron.daily | Antara 03:05 hingga 22:55 setiap hari |
/etc/cron.weekly | Antara 03:25 dan 23:10 setelah 7 hari sejak eksekusi terakhir |
/etc/cron.monthly | Antara 03:45 dan 23:30 setelah sebulan sejak eksekusi terakhir |
– Yang perlu dilakukan sysadmin adalah menempatkan skrip shell atau tautan ke file yang dapat dieksekusi di salah satu direktori dan secara otomatis akan dijalankan pada waktu yang tepat.
sintaks crontab
Menyiapkan crontab tingkat pengguna agak berbeda. File di /var/spool/cron tidak diedit secara langsung. Sebaliknya, sebuah program yang disebut crontab digunakan untuk memanipulasi mereka. Sintaks dari perintah crontab adalah :
Usage: crontab [options] file crontab [options] crontab -n [hostname] Options: -u [user] define user -e edit user's crontab -l list user's crontab -r delete user's crontab -i prompt before deleting -n [host] set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x [mask] enable debugging
Cara mengedit crontab
Cara terbaik untuk mengedit crontab adalah menggunakan perintah crontab -e . Cara lain untuk melakukannya adalah :
1. su to the user whose cron you want to change 2. crontab -l > file [ copy the crontab to a file ]. 3. vi file [ make changes to the file as per your need ] 4. crontab file [ this makes the "file" as new crontab ]
Tidak perlu me-restart cron daemon setelah ini.
Menafsirkan bidang waktu dan tanggal
Setiap perintah cron memiliki 5 bidang waktu dan tanggal, diikuti dengan nama pengguna [opsional], dan jika ini adalah file crontab sistem, maka akan diikuti oleh perintah. Perintah dijalankan ketika waktu yang ditentukan oleh bidang waktu/tanggal cocok dengan waktu saat ini.
field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 0-31 month 0-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)
Bidang dapat berupa tanda bintang (*), yang selalu berarti pertama sampai terakhir . Jadi jika digunakan di kolom bulan, artinya setiap bulan dari 0 (Jan) hingga 12 (Des).
Contoh tugas Cron:
# Example of job definition: .---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | 0 1 * * * [user-name] [command to be executed]
Contoh pengaturan tugas cron
Berikut adalah beberapa contoh penggunaan crontab untuk memahami cara menjadwalkan tugas :
Contoh : menjalankan pekerjaan lima menit setelah tengah malam, setiap hari :
5 0 * * * /home/oracle/scan_asm_devices.sh
Contoh : menjalankan pekerjaan pada 17:30 pada tanggal 1 setiap bulan :
30 17 1 * * mail -s "It's 5:30pm"
Contoh : Menjalankan pekerjaan pada pukul 4:05 setiap hari Senin.
5 4 * * mon echo "run at 5 after 4 every monday"
Kontrol akses pengguna
– Untuk mengizinkan pengguna mengakses crontab, file /etc/cron.allow dan /etc/cron.deny dapat digunakan untuk mengizinkan atau menolak akses. Cukup masukkan satu nama pengguna di salah satu dari 2 file untuk mengizinkan atau menolak akses ke crontab.
– Jika file /etc/cron.allow ada maka file /etc/cron.deny tidak akan digunakan.
– Dalam instalasi default hanya file kosong /etc/cron.deny yang akan ada.
– Jika tidak ada file yang ada maka hanya pengguna root yang akan diberikan akses untuk menjadwalkan pekerjaan melalui cron.