GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengotomatiskan tugas di Linux menggunakan Crontab

Terkadang, Anda mungkin memiliki tugas yang perlu dilakukan secara teratur atau pada interval tertentu yang telah ditentukan. Tugas-tugas tersebut termasuk membuat cadangan database, memperbarui sistem, melakukan reboot berkala dan sebagainya. Tugas seperti itu di linux disebut sebagai tugas cron (Crontab). Pekerjaan Cron digunakan untuk otomatisasi tugas yang berguna dan membantu menyederhanakan pelaksanaan tugas yang berulang dan terkadang biasa-biasa saja. Cron adalah daemon yang memungkinkan Anda untuk menjadwalkan pekerjaan ini yang kemudian dilakukan pada interval tertentu. Dalam tutorial ini, Anda akan mempelajari cara menjadwalkan tugas menggunakan tugas cron.

File Crontab

File crontab, juga dikenal sebagai tabel cron , adalah file teks sederhana yang berisi aturan atau perintah yang menentukan interval waktu pelaksanaan tugas. Ada dua kategori file crontab:

1)  File crontab seluruh sistem

Ini biasanya digunakan oleh layanan Linux &aplikasi penting yang membutuhkan hak akses root. File crontab sistem terletak di /etc/crontab dan hanya dapat diakses dan diedit oleh pengguna root. Biasanya digunakan untuk konfigurasi daemon seluruh sistem. File crontab terlihat seperti yang ditunjukkan:

2) File crontab buatan pengguna

Pengguna Linux juga dapat membuat pekerjaan cron mereka sendiri dengan bantuan perintah crontab. Pekerjaan cron yang dibuat akan dijalankan sebagai pengguna yang membuatnya.

Semua tugas cron disimpan di /var/spool/cron (Untuk distro RHEL dan CentOS) dan /var/spool/cron/crontab (Untuk distro Debian dan Ubuntu), tugas cron terdaftar menggunakan nama pengguna pengguna yang membuat tugas cron

daemon cron berjalan tanpa suara di latar belakang memeriksa /etc/crontab file dan /var/spool/cron dan /etc/cron.d*/ direktori

crontab Perintah ini digunakan untuk mengedit file cron. Mari kita lihat anatomi file crontab.

Anatomi file crontab

Sebelum kita melangkah lebih jauh, penting bagi kita untuk mengeksplorasi terlebih dahulu bagaimana tampilan file crontab. Sintaks dasar untuk file crontab terdiri dari 5 kolom yang diwakili oleh tanda bintang diikuti dengan perintah yang akan dijalankan.

*    *    *    *    *    perintah

Format ini juga dapat direpresentasikan seperti yang ditunjukkan di bawah ini:

perintah m h d moy dow

ATAU

m h d moy dow /path/to/script

Mari kita uraikan setiap entri

  • m :Ini mewakili menit. Ini ditentukan dari 0 hingga 59
  • h :Ini menunjukkan jam yang ditentukan dari 0 hingga 23
  • d :  Ini mewakili hari dalam sebulan. Ditentukan antara 1 hingga 31`
  • moy :Ini adalah bulan dalam setahun. Ini ditentukan antara 1 hingga 12
  • hey :  Ini adalah hari dalam seminggu. Ini ditentukan antara 0 dan 6 di mana 0 =Minggu
  • Perintah :Ini adalah perintah yang akan dijalankan misalnya perintah backup, reboot, ©

Mengelola tugas cron

Setelah melihat arsitektur file crontab, mari kita lihat bagaimana Anda dapat membuat, mengedit, dan menghapus tugas cron

Membuat tugas cron

Untuk membuat atau mengedit tugas cron sebagai pengguna root, jalankan perintah

# crontab -e

Untuk membuat tugas cron atau menjadwalkan tugas sebagai pengguna lain, gunakan sintaks

# crontab -u nama pengguna -e

Misalnya, untuk menjalankan tugas cron sebagai pengguna Pradeep, jalankan perintah:

# crontab -u Pradeep -e

Jika tidak ada file crontab yang sudah ada sebelumnya, maka Anda akan mendapatkan dokumen teks kosong. Jika file crontab sudah ada, Opsi  -e memungkinkan  untuk mengedit file,

Mencantumkan file crontab

Untuk melihat tugas cron yang telah dibuat, cukup berikan opsi -l seperti yang ditunjukkan

# crontab -l

Menghapus  file crontab

Untuk menghapus file cron, cukup jalankan crontab -e dan hapus atau baris cron job yang Anda inginkan dan simpan file tersebut.

Untuk menghapus semua tugas cron, jalankan perintah:

# crontab -r

Karena itu, mari kita lihat berbagai cara untuk menjadwalkan tugas

Contoh Crontab dalam Menjadwalkan tugas.

Semua pekerjaan cron dengan header Shebang seperti yang ditunjukkan

#!/bin/bash

Ini menunjukkan shell yang Anda gunakan, yang dalam hal ini adalah shell bash.

Selanjutnya, tentukan interval di mana Anda ingin menjadwalkan tugas menggunakan entri cron job yang kami tentukan sebelumnya.

Untuk mem-boot ulang sistem setiap hari pada pukul 12:30, gunakan sintaks:

30  12 *  *  * /sbin/reboot

Untuk menjadwalkan reboot pada jam 4:00 pagi gunakan sintaks:

0  4  *  *  *  /sbin/reboot

CATATAN: Tanda bintang * digunakan untuk mencocokkan semua record

Untuk menjalankan skrip dua kali setiap hari, misalnya, 4:00 pagi dan 4:00 sore, gunakan sintaks.

0  4,16  *  *  *  /path/to/script

Untuk menjadwalkan tugas cron agar berjalan setiap hari Jumat pukul 17.00  gunakan sintaks:

0  17  *  *  Jum  /path/to/script

ATAU

0 17  *  *  *  5  /path/to/script

Jika Anda ingin menjalankan tugas cron Anda setiap 30 menit, gunakan:

*/30  *  *  *  * /path/to/script

Untuk menjadwalkan cron agar berjalan setiap 5 jam, jalankan

*  */5  *  *  *  /path/to/script

Untuk menjalankan skrip pada hari yang dipilih, misalnya Rabu dan Jumat pukul 18.00, jalankan:

0  18  *  *  rabu,jumat  /path/to/script

Untuk menjadwalkan beberapa tugas untuk menggunakan satu tugas cron, pisahkan tugas menggunakan titik koma misalnya:

*  *  *  *  *  /path/to/script1; /path/to/script2

Menggunakan string khusus untuk menghemat waktu menulis tugas cron

Beberapa pekerjaan cron dapat dengan mudah dikonfigurasi menggunakan string khusus yang sesuai dengan interval waktu tertentu. Misalnya,

1)  @stempel waktu setiap jam sesuai dengan  0 * * * *

Ini akan menjalankan tugas di menit pertama setiap jam.

@hourly /path/to/script

2) @stempel waktu harian setara dengan  0 0 * * *

Ini menjalankan tugas di menit pertama setiap hari (tengah malam). Ini sangat berguna saat menjalankan pekerjaan sehari-hari.

@daily /path/to/script

3) stempel waktu @weekly   sama dengan  0 0 1 * mon

Ini menjalankan tugas cron di menit pertama setiap minggu di mana satu minggu, satu minggu dimulai pada hari Senin.

@weekly /path/to/script

3) @monthly mirip dengan entri 0 0 1 * *

Itu melakukan tugas di menit pertama hari pertama bulan itu.

@bulanan /path/to/script

4) @tahunan sama dengan 0 0 1 1 *

Ini menjalankan tugas di menit pertama setiap tahun dan berguna dalam mengirim salam Tahun Baru 🙂

@bulanan /path/to/script

Pembatasan Crontab

Sebagai pengguna Linux, Anda dapat mengontrol siapa yang berhak menggunakan perintah crontab. Ini dimungkinkan menggunakan /etc/cron.deny dan /etc/cron.allow mengajukan. Secara default, hanya file /etc/cron.deny yang ada dan tidak berisi entri apa pun. Untuk membatasi pengguna menggunakan utilitas crontab, cukup tambahkan nama pengguna pengguna ke file. Saat pengguna ditambahkan ke file ini, dan pengguna mencoba menjalankan perintah crontab, dia akan menemukan kesalahan di bawah ini.

Agar pengguna dapat terus menggunakan utilitas crontab,  cukup hapus nama pengguna dari file /etc/cron.deny.

Jika file /etc/cron.allow ada, maka hanya pengguna yang terdaftar dalam file yang dapat mengakses dan menggunakan utilitas crontab.

Jika tidak ada file, maka hanya pengguna root yang memiliki hak istimewa untuk menggunakan perintah crontab.

Mencadangkan entri crontab

Itu selalu disarankan untuk membuat cadangan entri crontab Anda. Untuk melakukannya, gunakan sintaks

# crontab -l> /path/to/file.txt

Misalnya,

# crontab -l > /home/james/backup.txt

Memeriksa log cron

Log cron disimpan di file /var/log/cron. Untuk melihat log cron jalankan perintah:

# cat /var/log/cron

Untuk melihat log langsung, gunakan perintah tail seperti yang ditunjukkan:

# tail -f /var/log/cron

Kesimpulan

Dalam panduan ini, Anda mempelajari cara membuat tugas cron untuk mengotomatiskan tugas yang berulang, cara mencadangkan, serta cara melihat log cron. Kami berharap artikel ini memberikan wawasan yang bermanfaat terkait dengan pekerjaan cron. Jangan ragu untuk memberikan masukan dan komentar Anda.


Linux
  1. Bagaimana saya menggunakan cron di Linux

  2. Otomatiskan Tugas Sistem dengan crontab di CentOS 7

  3. Otomatiskan Tugas Sistem Menggunakan Crontab di Ubuntu

  1. Kiat Linux untuk menggunakan cron untuk menjadwalkan tugas

  2. Cara menggunakan cron di Linux

  3. Bagaimana cara mengatur Tugas Otomatis pada VPS Linux Menggunakan Cron?

  1. Cara Mengatur Pekerjaan Cron di Linux

  2. Cara Membuat Script Startup menggunakan Crontab di Lubuntu Linux

  3. Cara Menjadwalkan Tugas Menggunakan di di Linux