Jalankan Pekerjaan Cron Setiap Menit

Run Cron Job Every Minute

Jika Anda ingin menjalankan program atau skrip di latar belakang di Linux maka pekerjaan cron sangat penting. Dengan bantuan pekerjaan cron, Anda dapat menjalankan program atau skrip di latar belakang setelah interval waktu tertentu.

Mari kita lihat beberapa contoh nyata dari pekerjaan cron.



  • Katakanlah, Anda memiliki situs web dan Anda ingin mengirim email kepada semua pengguna situs web Anda setiap hari. Yang harus Anda lakukan adalah, tulis skrip pengiriman email dan atur tugas cron untuk menjalankan skrip itu setiap hari.
  • Katakanlah, Anda memiliki biro iklan dan Anda ingin mengingatkan semua pengiklan yang saldonya di bawah $5 untuk diisi ulang. Yang harus Anda lakukan adalah menulis skrip yang memeriksa saldo semua pengiklan dan ketika di bawah $5, itu akan mengirimkan pemberitahuan ke nomor ponsel atau email pengiklan. Kemudian atur tugas cron untuk menjalankan skrip setiap 5 hingga 10 menit, atau setiap jam.

Ada banyak kegunaan lain dari pekerjaan cron di Linux.



Pada artikel ini, saya akan menunjukkan cara menjalankan pekerjaan cron setiap menit di Linux. Saya akan menggunakan Debian 9 Stretch untuk demonstrasi. Tetapi Anda dapat menggunakan distribusi Linux modern apa pun pilihan Anda. Mari kita mulai.



Di Linux, Anda tidak perlu menjadi akar untuk menjalankan tugas cron. Anda dapat menjalankan tugas cron sebagai pengguna mana pun. Setiap pengguna di Linux dapat menggunakan a crontab file untuk menjalankan set pekerjaan cron mereka sendiri.

Secara default, pengguna tidak memiliki crontab berkas di Linux. Anda dapat membuat crontab file dengan perintah berikut:

$crontab-Dan



Jika Anda menjalankan perintah ini untuk pertama kalinya, maka Anda akan diminta untuk memilih editor teks dari daftar. saya akan memilih nano , yang default. Anda dapat memilih yang Anda suka. Setelah selesai, tekan .

NS crontab file harus dibuat (jika belum tersedia) dan dibuka dengan editor teks favorit Anda. Sekarang Anda dapat menambahkan pekerjaan cron Anda sendiri di akhir file ini dan setelah Anda puas, simpan saja dan keluar dari editor teks.

Sintaks Menjalankan Perintah Setiap Menit:

Sintaks dari crontab berkasnya sebagai berikut:

menit jam hariBulan hariHariMinggu perintahUntukRun

Di Sini,

  • menit dapat 0 ke 59 .
  • jam bisa juga 0 ke 59 .
  • hariBulan dapat 1 ke 31 .
  • bulan dapat 1 ke 12 .
  • hari dalam seminggu dapat 0 ke 7 . 0 dan 7 berarti hari Minggu, 1 berarti Senin, 2 berarti Selasa dan seterusnya.

Untuk menjalankan perintahUntukMenjalankan perintah setiap menit, Anda harus menulisnya di crontab berkas sebagai berikut:

* * * * *perintahUntukMenjalankan

Menjalankan Pekerjaan Crob Setiap Menit:

Sekarang setelah kita mengetahui teorinya, mari tambahkan skrip sederhana timer.sh ke crontab file dan lihat cara mengelolanya.

Dalam timer.sh script, saya hanya memiliki baris kode berikut. Yang dilakukannya hanyalah membuat file baru /home/shovon/bin/timer.log (jika belum ada) dan menambahkan output dari perintah date ke dalamnya.

Sekarang mari tambahkan skrip ke crontab dan biarkan berjalan setiap menit dengan baris berikut:

* * * * * /rumah/shovon/NS/timer.sh

Setelah Anda menyimpan crontab file dan keluar dari editor teks, yang baru crontab file harus diinstal.

Setelah satu menit berlalu, file baru adalah timer.log dibuat di direktori yang diinginkan seperti yang Anda lihat di bagian yang ditandai pada tangkapan layar di bawah.

Dari timer.log file log, jelas bahwa skrip timer.sh berjalan setiap menit.

Menangkap Kesalahan dari Pekerjaan Cron:

Untuk menangkap kesalahan dari tugas cron, Anda dapat mengirim kesalahan ke a catatan eror file dan output normal ke akses.log berkas misalnya. Tentu saja Anda dapat memberi nama file apa pun yang Anda inginkan.

Untuk menunjukkan ini, saya memodifikasi skrip saya timer.sh sedikit. Sekarang kesalahan dikirim ke catatan eror file di / rumah / shovon / bin direktori dan output dikirim ke akses.log dalam / rumah / shovon / bin direktori.

Pada awalnya /tmp/i_must_be_here file tidak ada, jadi saya mendapatkan kesalahan di catatan eror file seperti yang Anda lihat.

NS akses.log file kosong saat ini.

Sekarang saya akan membuat file /tmp/i_must_be_here

Dan seperti yang Anda lihat, outputnya ada di akses.log berkas sekarang.

Jika mau, Anda dapat mengarahkan ulang output dan kesalahan dalam file yang sama sebagai berikut:

Seperti yang Anda lihat, output STDIN dan STDERR dikirim ke keluar.log mengajukan.

Memastikan Pekerjaan Terakhir Selesai Berjalan Sebelum Menjalankan Pekerjaan Lagi:

Agar ini berfungsi, Anda dapat membuat file sementara tepat setelah pekerjaan dimulai dan menghapusnya tepat sebelum selesai. Kemudian Anda dapat memeriksa apakah file sementara ada sebelum memulai pekerjaan. Jika ya, Anda dapat keluar dari pekerjaan dan menjalankan pekerjaan hanya jika file sementara tidak tersedia.

Script sederhana ini melakukan hal itu.

Seperti yang Anda lihat, timer.pid file dibuat.

Membaca akses.log file tersebut membuktikan bahwa cron job tidak berjalan sebelum cron job sebelumnya selesai dijalankan. Seperti yang Anda lihat, itu berjalan pada 01:32:01 dan waktu berikutnya seharusnya berjalan pada 01:33:01, tetapi tidak. Sebaliknya, itu berjalan pada 01:35:01, sekitar 3 menit kemudian.

Mengatur Output Cron Job untuk Debugging yang Mudah:

Anda dapat memformat output dengan baik untuk membuat tugas cron Anda lebih mudah di-debug.

Contoh bagaimana hal itu dapat dilakukan diberikan dalam skrip berikut.

Seperti yang Anda lihat, output, kesalahan, dan pesan sukses dicetak dengan baik di file log.

Anda dapat melakukan hal-hal luar biasa dengan pekerjaan cron dan skrip shell. Saya menunjukkan beberapa ide di sini. Tapi langit adalah batasmu. Jangan ragu untuk bereksperimen dengan ide apa pun yang Anda miliki. Terima kasih telah membaca artikel ini.