Cara install crontab di CentOS

Cron adalah job untuk penjadwal tugas yang secara terus menerus sesuai tugas yang diberikan, cronjob ini banyak digunakan untuk mengotomasi pemeliharaan atau adminisrasi sistem contohnya backup database, backup source aplikasi, melakukan pengecekan rutin ruang hardisk dan banyak lagi kegunaannya.

Anda dapat menjadwalkan cronjob untuk dijalankan berdasarkan menit, jam, hari dalam bulan, tahun, hari dalam seminggu atau kombinasi dari semuanya sesuai kebutuhan.

Apa itu File Crontab

Crontab (cron table) adalah file teks yang menentukan jadwal cron jobs.

Ada dua jenis file crontab.

  1. File crontab seluruh sistem
  2. File crontab pengguna individu.

File crontab pengguna disimpan dengan nama pengguna dan lokasinya bervariasi menurut sistem operasi. Dalam sistem berbasis Red Hat seperti CentOS, file crontab disimpan di direktori /var/spool/cron sementara pada file Debian dan Ubuntu disimpan di direktori var/spool/cron/crontabs

Meskipun Anda dapat mengedit file crontab pengguna secara manual, disarankan untuk mengedit crontab menggunakan perintah crontab melalui baris perintah.

/etc/crontab dan file di dalam direktori /etc/cron.d adalah file crontab di seluruh sistem yang hanya dapat diedit oleh administrator sistem.

Instalasi Crontab

Sebelum melakukan instalasi pastikan di server sudah ada crontabnya atau belum menggunakan perintah :

crontab -l

Jika Hasilnya tidak seperti berikut :

# crontab -l
-bash: crontab: command not found

Maka kita perlu menginstall  dengan perintah

yum install cronie

Jika sudah selesai, kita bisa langsung membuat crontab.

Sintaks dan Operator Crontab

Setiap baris dalam file crontab pengguna berisi enam bidang yang dipisahkan oleh spasi diikuti oleh perintah yang akan dijalankan.

[root@vm-apps cron]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  • Menit (Minute) – menunjukkan di menit ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 59.
  • Jam (Hour) – menunjukkan di jam ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 23.
  • Hari di bulan tertentu (Day of the month) – menunjukkan di hari apa perintah akan dijalankan. Tanggalnya dimulai dari tanggal 1 sampai 31.
  • Bulan (Month) – menunjukkan di bulan apa perintah akan dijalankan, dimulai dari bulan 1 hingga 12.
  • Hari di minggu tertentu (Day of the week) – menunjukkan di hari apa perintah akan dijalankan, dimulai dari hari 0 sampai 7.

Anda juga harus menggunakan karakter yang tepat di setiap file crontab:

  • Tanda bintang (*) – untuk mengatur semua parameter jadwal atau waktu.
  • Koma (,) – untuk menjalankan satu perintah di dua atau lebih dari dua waktu yang berbeda.
  • Tanda penghubung (-) – satu perintah bisa dijalankan dalam beberapa kali waktu atau hari. Tanda ini digunakan untuk menentukan rentang waktunya.
  • Garis miring (/) – untuk membuat interval dalam rentang waktu tertentu.
  • Last (L) – mereferensikan hari di minggu terakhir pada suatu bulan. Misalnya, di bulan tersebut hari terakhirnya adalah hari Rabu. Maka 3L berarti hari Rabu terakhir.
  • Weekday (W) – untuk menentukan hari kerja di waktu tertentu. Misalnya, Anda menjadwalkan satu minggu (1W). Apabila hari pertama (1st) – yang juga adalah akhir pekan – adalah Sabtu, perintah baru akan dijalankan di hari ketiga (hari kerja), yakni Senin (3rd).
  • Tanda pagar (#) – untuk menentukan hari di minggu tertentu. Biasanya hadir di kisaran 1 sampai 5. Misalnya, 1#2 berarti Senin kedua (hari pertama di minggu kedua).
  • Tanda tanya (?) – membiarkan field kosong.

Contoh dan Format Cron Jobs

Di bawah ini adalah beberapa contoh cron jobs yang akan menunjukkan kepada Anda bagaimana menjadwalkan tugas untuk dijalankan pada periode waktu yang berbeda.

1. Jalankan perintah pada pukul 17:00 setiap hari dari Senin hingga Jumat:

0 17 * * 1-5 /path/to/script.sh

Untuk perintah contohya bisa digunakan untuk rimender untuk absensi pulang.

2. Jalankan skrip setiap 5 menit dan arahkan kembali output standar ke dev null, hanya kesalahan standar yang akan dikirim ke alamat email yang ditentukan:
MAILTO=acepsf@gmail.com

*/5 * * * * /path/to/script.sh > /dev/null

3. Jalankan dua perintah setiap hari Monday (Senin) jam 3 sore (gunakan operator && di antara perintah):

0 15 * * Mon command1 && command2

4. Jalankan skrip PHP setiap 2 menit dan tulis hasilnya ke file:

*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log

5. Jalankan skrip setiap hari, setiap jam, pada jam tersebut, dari jam 8 pagi hingga jam 4 sore:

00 08-16 * * * /jalur/ke/script.sh

6. Jalankan skrip pada hari Senin pertama setiap bulan, pada pukul 7 pagi.

0 7 1-7 * 1 /path/to/script.sh

7. Jalankan skrip pada pukul 21:15, pada tanggal 1 dan 15 setiap bulan:

15 9 1,15 * * /path/to/script.sh

8. Tetapkan variabel HOME, PATH, SHELL dan MAILTO khusus dan jalankan perintah setiap menit.

HOME=/opt
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/zsh
MAILTO=email@example.com

*/1 * * * * command

9. Restart Tomcat setiap hari di jam jam 12 malam

00 00 * * * bash -c '/tomcat/bin/shutdown.sh && /tomcat/bin/startup.sh'

20. Untuk menjalankan perintah di hari pertama setiap bulan.

0 0 1 * * /home/user/script.sh

21. Untuk menjadwalkan berbagai job di satu cron job.

* * * * * /scripts/script.sh; /scripts/scrit2.sh

22. Untuk menjalankan perintah setiap tiga bulan di hari pertama pada jam 8 pagi.

0 8 1 */3 * /home/user/script.sh

23. Untuk menjalankan perintah setiap 5 menit di jam 5 pagi. Waktunya dimulai dari jam 5.10.

10-59/5 5 * * * /home/user/script.sh

24. Untuk menjalankan perintah di bulan Januari, Februari, dan Mei.

* * * 1,2,5 *  /script/script.sh

25. Untuk menjalankan backup database pada tengah malam setiap hari Selasa.

0 0 * * 2 * /bin/sh

26. Untuk menjalankan backup database setiap jam hanya pada tanggal 20 Juli.

0 * 20 7 * /bin/sh backup.sh

27. Untuk menjalankan cron job file script yang ada di direktori home setiap 10 menit.

*/10 * * * * /home/user/script.sh

28. Untuk melakukan pemantauan atau monitor setiap enam jam.

0 */6 * * * /scripts/monitor.sh

29. Untuk menjalankan backup database dua kali sehari, yakni pada jam 6 pagi dan 6 sore.

0 6,18 * * * /bin/sh backup.sh

 

Perintah Crontab di Linux

Perintah crontab memungkinkan Anda untuk menginstal atau membuka file crontab untuk diedit. Anda dapat menggunakan perintah crontab untuk melihat, menambah, menghapus, atau memodifikasi pekerjaan cron menggunakan opsi berikut:

Edit file crontab, atau buat file jika belum ada dan di create sesuai user yang melakukan perintah crontab -e

crontab -e

Menampilkan konten file crontab.

crontab -l

Hapus file crontab Anda saat ini.

crontab -r

Hapus file crontab Anda saat ini dengan prompt sebelum dihapus.

crontab -i

Edit file penggunaan crontab lainnya. Membutuhkan hak administrator sistem.

crontab -u <username>

Perintah crontab membuka file crontab menggunakan editor yang ditentukan oleh variable environment VISUAL atau EDITOR.

Pembatasan Crontab

Administrator sistem dapat mengontrol pengguna mana yang memiliki akses ke perintah crontab dengan menggunakan file /etc/cron.deny dan /etc/cron.allow. File-file tersebut terdiri dari daftar nama pengguna, satu nama pengguna per baris.

  1. File /etc/cron.deny tersedia Secara default, namun file tersebut kosong, yang berarti bahwa semua pengguna dapat menggunakan perintah crontab. Jika Anda ingin menolak akses ke perintah crontab ke pengguna tertentu, tambahkan nama pengguna ke file cron.deny.
  2. Jika file/etc/cron.allow ada, hanya pengguna yang terdaftar dalam file ini yang dapat menggunakan perintah crontab. Jika tidak ada file cron.allow, hanya pengguna dengan hak administratif (root atau pengguna dengan hak sudo) yang dapat menggunakan perintah crontab.

Tambahan (Optional)

Agar crontab running saat server direstart atau mati jalankan perintah :

systemctl enable crond.service

Kemudian jalankan perintah systemctl start crond.service untuk menjalankan crobtab agar aktif selalu

systemctl start crond.service

Kesimpulan

Crontab sangat bermanfaat salah satunya melakukan backups secara otomatis dan melakukan restart pada server aplikasi, untuk pembuatan push notifikasi cronjob juga bisa digunakan untuk membantu melakukan push notifikasi ke user.

Sekian tutorial kali ini, semoga bermanfaat.

 

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.