GNU/Linux >> Belajar Linux >  >> Linux

10 contoh cron yang berguna untuk menjadwalkan pekerjaan di Linux

Sistem GNU/Linux mendukung beberapa utilitas untuk penjadwalan tugas. Utilitas cron adalah yang paling banyak didukung. Ini memungkinkan Anda untuk menjadwalkan tugas yang akan dijalankan di latar belakang secara berkala. Utilitas cron menggunakan tabel (crontab) dengan daftar skrip atau perintah yang akan dieksekusi dan waktu eksekusinya.

Menjadwalkan tugas

Pengguna normal dapat menggunakan perintah crontab untuk mengelola pekerjaan mereka. Perintah ini dapat dipanggil dengan empat cara berbeda:

Perintah Fungsi
crontab -l Mencantumkan pekerjaan untuk pengguna saat ini
crontab -r Hapus semua pekerjaan untuk pengguna saat ini.
crontab -e Mengedit pekerjaan untuk pengguna saat ini.
crontab [nama file] Hapus semua pekerjaan, dan ganti dengan pekerjaan yang dibaca dari [nama file]. Jika tidak ada file yang ditentukan, stdin akan digunakan.

Cara mengedit dan melihat crontab

Saat mengedit tugas dengan “crontab -e “, editor akan dijalankan (vi secara default. kecuali variabel lingkungan EDITOR telah disetel ke sesuatu yang berbeda). File yang sedang diedit akan memiliki satu pekerjaan per baris. Baris kosong diperbolehkan, dan komentar memulai barisnya dengan simbol hash (#).

# crontab -e

Saat Anda menjalankan perintah "crontab -e" tanpa opsi apa pun, crontab dari pengguna yang saat ini masuk akan diedit secara default. Untuk mengedit crontab pengguna lain, Anda dapat menggunakan opsi -u dengan perintah crontab. Misalnya, untuk mengedit crontab pengguna john.

# crontab -u john -e

Demikian pula, untuk melihat crontab pengguna saat ini, gunakan "crontab -l ” perintah.

# crontab -l

Dan untuk membuat daftar crontab dari pengguna tertentu, gunakan perintah di bawah ini.

# crontab -u john -l

File konfigurasi Cron

Proses latar belakang cron sebagian besar tidak digunakan. Itu bangun sekali setiap menit dan memeriksa /etc/crontab, /etc/cron.d, dan file tabel cron pengguna dan menentukan apakah ada pekerjaan yang perlu dijalankan.

Tabel di bawah ini merangkum tujuan dari berbagai file dan direktori yang digunakan oleh cron. Pengetahuan tentang file dan direktori ini akan membantu Anda memecahkan masalah apa pun serta memahami cron lebih detail.

File Tujuan
/etc/init.d/crond Memulai daemon cron di boot sistem.
/var/log/cron Pesan sistem yang terkait dengan proses cron. Berguna untuk memecahkan masalah.
/var/spool/cron/[nama pengguna] File crontab pengguna disimpan di /var/spool/crondirectory.
/etc/cron.allow Menentukan pengguna yang dapat membuat tabel cron.
/etc/cron.deny Menentukan pengguna yang tidak diizinkan membuat tabel cron.
/etc/crontab Tabel cron sistem yang memiliki perintah untuk menjalankan skrip yang terletak di direktori berikut: /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, dan /etc/cron.monthly.
/etc/cron.d Direktori yang berisi tabel cron untuk tugas yang perlu dijalankan pada jadwal selain per jam, harian, mingguan, atau bulanan.
/etc/cron.hourly Direktori yang berisi skrip sistem untuk dijalankan setiap jam.
/etc/cron.daily Direktori yang berisi skrip sistem untuk dijalankan setiap hari.
/etc/cron.weekly Direktori yang berisi skrip sistem untuk dijalankan setiap minggu.
/etc/cron.monthly Direktori yang berisi skrip sistem untuk dijalankan setiap bulan.

Sintaks crontab

Pekerjaan masing-masing pengguna disimpan di direktori /var/spool/cron dalam file yang cocok dengan nama pengguna. File-file ini selalu milik root pengguna. File di /var/spool/cron tidak diedit secara langsung. Sebaliknya, sebuah program yang disebut crontab digunakan untuk memanipulasi mereka. Gambar di bawah menunjukkan sintaks tugas cron.

Setiap baris dalam file mendefinisikan pekerjaan. Ada 6 bidang dalam satu baris. 5 bidang pertama menentukan waktu, bidang terakhir berisi perintah untuk dijalankan. Ini bisa berupa semua jenis perintah atau skrip shell. 5 kolom pertama memiliki format berikut:

Field Rentang
Menit 0-59
Jam 0-23
Hari Setiap Bulan 1-31
Bulan 0-12
Hari kerja 0-7

Contoh tugas cron

1. Jadwalkan pekerjaan pada tanggal 2 Februari, setiap tahun

Anda perlu menjalankan skrip cadangan setahun sekali pada tanggal tertentu di bulan Februari. Sytax ditunjukkan di bawah ini.

0 9 2 2 *   /usr/local/bin/yearly_backup

2. Jadwalkan pekerjaan setiap jam pada menit kelima, setiap hari

Gunakan perintah berikut untuk menjalankan skrip setiap jam pada menit kelima, setiap hari:

5 * * * *      $HOME/bin/daily.job >> $HOME/tmp/out  2>&1

3. Jadwalkan pekerjaan 5 menit setelah tengah malam setiap hari

Gunakan perintah berikut untuk menjalankan 5 menit setelah tengah malam setiap hari:

5 0 * * *      $HOME/bin/daily.job >> $HOME/tmp/out  2>&1

4. Jadwalkan pekerjaan pada waktu tertentu pada tanggal satu setiap bulan

Gunakan perintah berikut untuk dijalankan pada pukul 14:15. pada tanggal satu setiap bulan:

15 14 1 * * *     $HOME/bin/monthly

5. Jadwalkan pekerjaan pada waktu tertentu hanya pada hari kerja (tidak termasuk hari Sabtu dan Minggu)

Gunakan perintah berikut untuk menjalankan pada 10 P.M. pada hari kerja:

0 22 * * 1-5  $HOME/bin/weekday.job >> $HOME/tmp/out  2>&1

6. Menjadwalkan banyak tugas dalam satu tugas cron

Kami juga dapat menjadwalkan beberapa pekerjaan dalam satu pekerjaan cron menggunakan titik koma (;) pekerjaan terpisah seperti yang ditunjukkan di bawah ini:

0 12 * * * /var/tmp/script01.sh; /var/tmp/script02.sh

7. Menggunakan rentang untuk menentukan waktu mulai

Rentang dapat ditentukan melalui penggunaan tanda hubung. Nilai 1-5 menunjukkan bahwa bidang ini valid untuk angka 1 hingga 5. Jika Anda menggunakan nama alih-alih angka, Anda tidak dapat menentukan rentang. Contoh menentukan rentang ditunjukkan di bawah ini. Pekerjaan dijadwalkan untuk dijalankan setiap jam mulai pukul 3 sore. Sampai jam 10 malam

* 3-10 * * * /var/tmp/script.sh

8. Menggunakan nilai langkah untuk menentukan waktu mulai

Nilai langkah dapat digunakan bersama dengan rentang. Untuk menentukan nilai langkah, ikuti rentang dengan garis miring (/) dan angka. Angka yang ditentukan adalah nilai langkah. Misalnya, berikut ini menetapkan bahwa setiap nilai ketiga (dalam hal ini, 2, 5, 8, dan 11) harus cocok:

* 0-12/3 * * *  /var/tmp/script.sh

Nilai langkah juga dapat digunakan dengan tanda bintang. Nilai */3 di bidang jam akan cocok setiap jam ketiga (0, 3, 6, 9, 12, 15, 18, dan 21).

9. Menggunakan daftar untuk menentukan waktu mulai

Daftar juga dapat diterima; setiap item dalam daftar dipisahkan dengan koma. Adalah umum untuk menggunakan daftar dalam hubungannya dengan rentang, seperti:

1-15,31-45 * * * *  /var/tmp/script.sh

Contoh ini cocok dengan semua angka (menit dalam kasus kami) dari 1 hingga 15 dan dari 31 hingga 45. Jika Anda menggunakan nama alih-alih angka, Anda tidak dapat menentukan daftar.

10. Jadwalkan pekerjaan pada pukul 04:45, pada tanggal 1, 10, dan 22 setiap bulan

Di bawah ini adalah contoh menjalankan pekerjaan pada waktu tertentu pada beberapa hari tertentu dalam sebulan.

45 4 1,10,22 * * /apps/bin/backup.sh 

Makro Tab Cron

Kita dapat menambahkan makro di file crontab. Misalnya, gunakan yang berikut ini untuk memulai ulang "my_script" setelah setiap reboot:

@reboot  /var/tmp/my_script

Berikut ini adalah ringkasan dari beberapa makro lainnya:

Masuk Deskripsi Setara dengan @reboot Jalankan sekali saat start-up Tidak ada @mingguan Berjalan seminggu sekali 0 0 * * 0 @harian Jalankan sekali sehari 0 0 * * * @tengah malam (sama dengan @harian) 0 0 * * * @setiap jam Lari satu jam sekali 0 * * * *

Menangani Keluaran

Sebuah skrip sering mencetak sesuatu ke layar, baik untuk debugging, pembaruan status, atau untuk mencatat kesalahan. Apa pun yang dicetak pekerjaan ke layar akan dikirim dalam email ke pengguna saat ini, yang dapat ditimpa dengan variabel MAILTO di dalam crontab.

# crontab -l
MAIL=john
0 2 * * * /apps/bin/backup.sh
Cara menjadwalkan Pekerjaan dengan Cron di Linux
Mendefinisikan Pekerjaan Sistem Menggunakan Cron di Linux
UNIX / Linux :Bagaimana crontab memvalidasi akses berdasarkan file cron.allow dan cron.deny
CentOS / RHEL :dasar-dasar anacron (Apa itu anacron dan cara mengkonfigurasinya)
CentOS / RHEL :Panduan pemula untuk cron


Linux
  1. Cara menggunakan cron di Linux

  2. 12 Contoh Perintah Wget yang Berguna di Linux

  3. 6 Contoh Perintah Linux Crontab

  1. 14 Contoh Perintah 'ls' yang Berguna di Linux

  2. ls Perintah di Linux:17 Contoh yang Berguna Dijelaskan

  3. Cara Menjadwalkan Pekerjaan Cron dengan Crontab

  1. 9 Contoh perintah sentuh yang berguna di Linux

  2. Menjadwalkan Pekerjaan Cron dengan Crontab

  3. Cara Mendaftar Pekerjaan Cron di Linux