Tutorial dan Penggunaan Cron job dan Crontab di Terminal

Cron adalah daemon penjadwalan yang menjalankan tugas dengan interval yang ditentukan. Tugas-tugas ini disebut cron jobs dan sebagian besar digunakan untuk mengotomatisasi pemeliharaan atau administrasi sistem.

Misalnya, Anda dapat mengatur cron job untuk membuat backup database atau data dan file Anda, update sistem dengan tambalan keamanan terbaru, memeriksa penggunaan ruang disk, mengirim email dan banyak lagi. Beberapa aplikasi, seperti Drupal” atau Magento” membutuhkan cron jobs untuk melakukan fungsi tertentu.

Anda dapat menjadwalkan cron jobs untuk dijalankan berdasarkan menit, jam, hari dalam bulan, tahun, hari dalam seminggu atau kombinasi dari semuanya.

Di harapkan Anda membuka Linux Terminal dan mempraktekkan apa yang ada di panduan ini agar anda lebih memahami. Namun kami sarankan untuk menggunakan virtual machine (vmware atau virtualbox) agar tidak mengacaukan sistem yang berjalan.

*Apa itu File Crontab*

Crontab (*cron tab*le) adalah file teks yang menentukan jadwal cron jobs. Ada dua jenis file crontab. File crontab seluruh sistem dan 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.

Di sebagian besar distribusi Linux, Anda juga dapat meletakkan skrip di dalam direktori /etc/cron.{hourly,daily,weekly,monthly} dan skrip akan dieksekusi setiap jam/harian/mingguan/bulanan.

*Sintaks dan Operator Crontab*

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

* * * * * command(s) – – – – – | | | | | | | | | —– Hari dalam satu minggu (0 – 7) (Minggu=0 atau 7) | | | ——- Bulan (1 – 12) | | ——— Tanggal (1 – 31) | ———– Jam (0 – 23) ————- Menit (0 – 59)

Lima bidang pertama dapat berisi satu atau lebih nilai, dipisahkan oleh koma atau rentang nilai yang dipisahkan oleh tanda hubung.

· * – Operator tanda bintang berarti nilai apa pun atau selalu. Jika Anda memiliki simbol tanda bintang di bidang Jam, itu berarti tugas akan dilakukan setiap jam. · , – Operator koma memungkinkan Anda menentukan daftar nilai untuk pengulangan. Misalnya, jika Anda memiliki 1,3,5 di bidang Jam, tugas akan berjalan pada jam 1 pagi, 3 pagi dan 5 pagi (format jam 24 jam). · – Operator tanda hubung memungkinkan Anda untuk menentukan rentang nilai. Jika Anda memiliki 1-5 di bidang /Day of week,/ tugas akan berjalan setiap hari kerja (Dari Senin hingga Jumat). · / -Operasi garis miring memungkinkan Anda untuk menentukan nilai yang akan diulang selama interval tertentu di antara mereka. Misalnya, jika Anda memiliki * / 4 di bidang Jam, maka tindakan akan dilakukan setiap empat jam. Ini sama dengan menentukan 0,4,8,12,16,20. Alih-alih tanda bintang sebelum operator garis miring, Anda juga dapat menggunakan rentang nilai, 1-30/10 artinya sama dengan 1,11,21.

*File Crontab di seluruh sistem*

Sintaksis file crontab seluruh sistem sedikit berbeda dari crontab pengguna. Crontab berisi bidang wajib tambahan yang digunakan untuk menentukan pengguna mana yang menjalankan cron job.

* * * * * command(s)

-Interval waktu crontab-

Ada beberapa makro jadwal Cron khusus yang digunakan untuk menentukan interval umum. Anda dapat menggunakan pintasan ini sebagai pengganti spesifikasi tanggal lima kolom.

· @yearly” (atau” @annually) – Jalankan tugas yang ditentukan setahun sekali pada tengah malam (12:00 pagi) tanggal 1 Januari. Setara dengan” 0 0 1 1 * · @monthly – Jalankan tugas yang ditentukan sebulan sekali pada tengah malam pada hari pertama bulan itu. Setara dengan” 0 0 1 * * · @weekly – Jalankan tugas yang ditentukan tanpa seminggu seminggu di tengah malam pada hari Minggu. Setara dengan 0 0 * * 0 · @daily – Jalankan tugas yang ditentukan sekali sehari pada tengah malam. Setara dengan” 0 0 * * * · @hourly” – Jalankan tugas yang ditentukan setiap satu jam sekali. Setara dengan 0 * * * * · @reboot– Jalankan tugas yang ditentukan pada saat startup sistem (waktu boot).

-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:

· crontab -e – Edit file crontab, atau buat file jika belum ada. · crontab -l – Menampilkan konten file crontab. · crontab -r– Hapus file crontab Anda saat ini. · crontab -i – Hapus file crontab Anda saat ini dengan prompt sebelum dihapus. · crontab -u – Edit file penggunaan crontab lainnya. Membutuhkan hak administrator sistem.

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

*Variabel” Environment Penggunaan Crontab*

Daemon cron secara otomatis menetapkan beberapa variabel environment” .

· Path default diatur ke PATH=/usr/bin:/bin. Jika perintah yang Anda panggil ada di jalur yang ditentukan cron, Anda bisa menggunakan jalur absolut ke perintah atau mengubah variabel” $PATH” cron. Anda tidak dapat menambahkan secara implisit :$PATH” seperti yang akan Anda lakukan dengan skrip normal. · Shell default diatur ke /bin/sh. Anda dapat mengatur shell yang berbeda dengan mengubah variabel” SHELL. · Cron menjalankan perintah dari direktori home pengguna. Variabel” HOME” dapat ditimpa oleh pengaturan di crontab. · Notifikasi email dikirim ke pemilik crontab. Untuk menimpa perilaku default, Anda dapat menggunakan variabel environment” MAILTO” dengan daftar (dipisahkan koma) dari semua alamat email yang ingin Anda terima notifikasi email. Jika” MAILTO” didefinisikan tetapi kosong (MAILTO=””), maka tidak ada email yang dikirim.

*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.

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.

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.

*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.

· Jalankan perintah pada pukul *15:00* setiap hari dari *Senin* hingga *Jumat*:

0 15 * * 1-5 perintah

· 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=email@example.com */5 * * * * /path/to/script.sh > /dev/null

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

0 *15* * * Mon command1 && command2

· Jalankan skrip PHP setiap *2 menit* dan tulis hasilnya ke file:

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

· Jalankan skrip setiap hari, setiap jam, pada jam tersebut, dari jam *8 pagi* hingga jam *4 sore*:

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

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

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

· Jalankan skrip pada pukul *21:15*, pada tanggal *1* dan *15* setiap bulan:

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

· 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

*Kesimpulan*

Anda telah belajar cara membuat pekerjaan cron dan menjadwalkan tugas pada tanggal dan waktu tertentu. Jika Anda merasa “tersiksa” menggunakan baris perintah, Anda dapat menggunakan versi GUI yang lebih ramah pemula dengan menggunakan webmin untuk debian dan Ubuntu” atau webmin untuk CentOS dan RHEL.

Leave a Reply

Your email address will not be published.