Home » Linux » Crontab Di Linux

Crontab Di Linux

Recent Comments

Archives

Calendar

February 2017
M T W T F S S
« Apr   Mar »
 12345
6789101112
13141516171819
20212223242526
2728  

Seorang system administrator sudah sangat familiar tentunya dengan contoh cron job (crontab) pada pembahasan ini dan biasanya digunakan untuk menjalan perintah terjadwal berjalan di background secara otomatis.

Linux Cron, merupakan tool yang cukup efectif dan banyak digunakan untuk menjalankan perintah di background pada jam tertentu, menyesuaikan dengan kebutuhan. Pembahasan kali ini akan membahas beberapa contoh dan tips dari 15 contoh cron job menggunakan crontab.

Format Linux Crontab

1 MIN HOUR DOM MON DOW CMD

Tabel: Field dan range yang diperbolehkan (Linux Crontab Syntax)

Field Deskripsi value
MIN Menit 0 – 60
HOUR Jam 0 – 23
DOM Hari dalam sebulan 1 – 31
MON Bulan 1 – 12
DOW Hari dalam seminggu 0 – 6
CMD Perintah any
  1. Membuat Scheduling pada Jam Tertentu

Penggunaan dasar dari cron adalah menjalankan job pada jam tertentu seperti contoh berikut. Pada contoh ini kita akan menentukan jadwal eksekusi file full-backup dengan menggunakan shell script pada 10 Juni jam 08:30.

1 30 08 10 06 * /home/montoska/full-backup

30 – Menit ke 30
08 – Jam 08:00
10 – Hari ke 10
06 – Bulan Juni
* – Setiap hari pada minggunya.

  1. Membuat Cron Job Terjadwal Dua Kali Dalam Sehari.

Pada contoh berikut, kita akan mengeksekusi file shell script dengan nama full-backup pada jam 11:00 dan 16:00 setiap harinya. Terdapat “,” (koma) yang berarti penekanan supaya dieksekusi pada jam yang sudah ditentukan.

1 00 11,16 * * * /home/montoska/bin/full-backup

00 – Menit awal
11,16 – 11:00 dan 16:00
* – Setiap hari
* – Setiap Bulan
* – Setiap hari dalam seminggu

  1. Schedule Job pada Range Jam Tertentu

Contohnya, kita akan melakukan pengecekan status database setiap harinya termasuk weekend pada jam kerja (09:00-16:00)

1 00 09-18 * * * /home/montoska/bin/check-db-status

00 – Menit awal
09-18 – 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00
* – Setiap hari
* – Setiap bulan
* – Setiap hari dalam seminggu
Cron Job every weekday during working hours
This example checks the status of the database every weekday (i.e excluding Sat and Sun) during the working hours 9 a.m – 6 p.m.

  1. Cara melihat Cron Job yang Ada

Melihat Cron Job apa saja yang sedang berjalan pada sistem, caranya cukup mengetikkan perintah “crontab -l” di terminal, seperti yang terlihat pada contoh berikut:

1

2

3

4

5

montoska@dev-db$ crontab -l

@yearly /home/montoska/annual-maintenance

*/10 * * * * /home/montoska/check-disk-space

 

[Note: This displays crontab of the current logged in user]

Untuk melihat daftar crontab user lainnya dengan menambahkan username, seperti berikut:

1

2

3

root@dev-db# crontab -u michele -l

@monthly /home/michele/monthly-backup

00 09-18 * * * /home/michele/check-db-status

  1. Bagaimana cara mengedit crontab yang sudah ada?

Crontab yang akan diedit adalah, crontab dari user yang digunakan login ke terminal dan untuk mengeditnya cukup ketikkan “crontab -e” pada terminal, seperti yang terlihat berikut:

1

2

3

4

5

6

7

8

ramesh@dev-db$ crontab -e

@yearly /home/montoska/centos/bin/annual-maintenance

*/10 * * * * /home/montoska/debian/bin/check-disk-space

~

“/tmp/crontab.XXXXyjWkHw” 2L, 83C

 

[Note: This will open the crontab file in Vim editor for editing.

Please note cron created a temporary /tmp/crontab.XX… ]

Setelah melakukan perubahan, kemudian simpan, jika menggunakan edito VI gunakan :wq, crontab baru akan tersimpan dan menampilkan pesan seperti berikut:

1

2

3

~

“crontab.XXXXyjWkHw” 2L, 83C written

crontab: installing new crontab

  1. Schedule Job Setiap Menit

Idealnya, kita mungkin saja tidak membutuhkan penjadwalan setiap menit. Tetapi untuk pemahaman lebih lanjut tentang crontab, cobalah perhatikan contoh berikut:

1 * * * * * CMD

Pengartian dari * posible atau setiap menit dari setiap jam dalam hitungan tahun.

Jika yang ditulis pada fiel menit */5 diartikan setiap 5 menit
Jika yang ditulis pada fiel menit 0-10/2 diartikan 2 menit pertama dari 10 menit

  1. Scheduler Cron Job setiap Awal Bulan/tahun dengan @monthly @yearly

Contohnya, jika kita membuat penjadwalan pada menit pertama pada setiap bulan/tahunnya, kita bisa menggunakan @moonly/@yearly, seperti berikut:

1 @yearly /home/montoska/red-hat/bin/annual-maintenance
1 @monthly /home/montoska/suse/bin/tape-backup
  1. Scheduler Eksekusi File Setelah Sesudah Reboot

Menggunakan @reboot yang merupakan salah satu keyword cron, kita bisa memerintahkan untuk melakukan berbagai hal, contonya mengeksekusi file, seperti berikut:

1 @reboot CMD
  1. Cara Spesifikasi Variabel Path

Contohnya, kita akan mengeksekusi file yang berada di direktori tertentu (/home/montoska/tape-backup), cara cukup mudah, perhatikan contoh berikut:

1

2

3

4

5

6

7

8

montoska@dev-db$ crontab -l

 

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/montoska

 

@yearly annual-maintenance

*/10 * * * * check-disk-space

 

[Note: Crontab of the current logged in user with PATH variable]

  1. Cara menambahkan Crontab dari File

Selain mengedit langsung file crontab, kita juga bisa membuat satu file khusu untuk crontab dan mengisikan semua perintah crontab ke dalam file tersebut. Kita bisa menginstalnya kedalam crontab dengan cara seperti berikut:

1

2

3

4

5

6

7

8

9

10

11

12

montoska@dev-db$ crontab -l

no crontab for montoska

 

$ cat cron-file.txt

@yearly /home/montoska/annual-maintenance

*/10 * * * * /home/montoska/check-disk-space

 

ramesh@dev-db$ crontab cron-file.txt

 

ramesh@dev-db$ crontab -l

@yearly /home/montoska/annual-maintenance

*/10 * * * * /home/montoska/check-disk-space

Sebagai cacatan, perintah diatas akan menambahkan semua yang ada didalam file cron-file.txt ke dalam crontab dan menghapus semua isi crontab yang sudah ada, jadi berhati-hatilah saat menggunakan cara ini.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: