Jalankan Kerja Cron Setiap Minit

Run Cron Job Every Minute



Sekiranya anda ingin menjalankan program atau skrip di latar belakang Linux maka pekerjaan cron sangat penting. Dengan bantuan cron jobs, anda dapat menjalankan program atau skrip di latar belakang setelah selang waktu tertentu.

Mari kita lihat beberapa contoh kehidupan sebenar pekerjaan cron.







  • Katakanlah, anda memiliki laman web dan anda ingin menghantar e-mel kepada semua pengguna laman web anda setiap hari. Yang harus anda lakukan hanyalah, menulis skrip penghantaran e-mel dan menyiapkan tugas cron untuk menjalankan skrip itu setiap hari.
  • Katakanlah, anda memiliki agensi iklan dan anda ingin mengingatkan semua pengiklan yang baki di bawah $ 5 untuk dicas semula. Yang harus anda lakukan ialah menulis skrip yang memeriksa keseimbangan semua pengiklan dan ketika di bawah 5 $, ia akan mengirimkan pemberitahuan ke nombor mudah alih atau e-mel pengiklan. Kemudian siapkan tugas cron untuk menjalankan skrip setiap 5 hingga 10 minit, atau setiap jam.

Terdapat banyak penggunaan pekerjaan cron lain di Linux.



Dalam artikel ini, saya akan menunjukkan kepada anda bagaimana menjalankan tugas cron setiap minit di Linux. Saya akan menggunakan Debian 9 Stretch untuk demonstrasi. Tetapi anda boleh menggunakan sebaran Linux moden pilihan anda. Mari kita mulakan.



Di Linux, anda tidak semestinya akar untuk menjalankan pekerjaan cron. Anda boleh menjalankan pekerjaan cron seperti mana-mana pengguna. Setiap pengguna di Linux boleh menggunakan a crontab fail untuk menjalankan kerja-kerja cron mereka sendiri.





Secara lalai, pengguna tidak mempunyai crontab fail di Linux. Anda boleh membuat a crontab fail dengan arahan berikut:

$crontab-Dan



Sekiranya anda menjalankan perintah ini untuk pertama kalinya, anda harus diminta untuk memilih editor teks dari senarai. Saya akan memilih nano , yang lalai. Anda boleh memilih yang anda suka. Setelah selesai, tekan .

The crontab fail harus dibuat (jika belum tersedia) dan dibuka dengan editor teks kegemaran anda. Sekarang anda boleh menambahkan pekerjaan cron anda sendiri di akhir fail ini dan setelah anda gembira, simpan saja dan keluar dari editor teks.

Sintaks Menjalankan Perintah Setiap Minit:

Sintaks bagi crontab fail adalah seperti berikut:

minit jam hariOfMonth bulan dayOfWeek commandToRun

Di sini,

  • minit boleh jadi 0 ke 59 .
  • jam boleh juga 0 ke 59 .
  • hariOfMonth boleh jadi 1 ke 31 .
  • bulan boleh jadi 1 ke 12 .
  • hari dalam seminggu boleh jadi 0 ke 7 . 0 dan 7 bermaksud hari Ahad, 1 bermaksud hari Isnin, 2 bermaksud hari Selasa dan seterusnya.

Untuk menjalankan a perintahToRun arahan setiap minit, anda harus menulisnya di crontab fail seperti berikut:

* * * * *perintahToRun

Menjalankan Pekerjaan Crob Setiap Minit:

Sekarang setelah kita mengetahui teori, mari tambah skrip ringkas pemasa.sh kepada crontab fail dan lihat bagaimana menguruskannya.

Di dalam pemasa.sh skrip, saya hanya mempunyai baris kod berikut. Yang dilakukannya hanyalah membuat fail baru /home/shovon/bin/timer.log (jika belum ada) dan menambahkan output perintah tarikh kepadanya.

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

* * * * * /kediaman/penyodok/saya/pemasa.sh

Sebaik sahaja anda menyimpan crontab fail dan keluar dari editor teks, yang baru crontab fail harus dipasang.

Setelah satu minit berlalu, fail baru adalah pemasa.log dibuat dalam direktori yang diingini seperti yang anda lihat di bahagian tangkapan skrin di bawah.

Daripada pemasa.log fail log, jelas bahawa skripnya pemasa.sh berjalan setiap minit.

Kesalahan Menangkap dari Pekerjaan Cron:

Untuk menangkap kesalahan dari cron job, anda dapat mengirim kesalahan ke a ralat.log fail dan output normal ke capaian.log fail misalnya. Sudah tentu anda boleh menamakan fail apa sahaja yang anda mahukan.

Untuk menunjukkan ini, saya mengubahsuai skrip saya pemasa.sh sedikit. Kesalahan kini dihantar ke ralat.log fail di / rumah / sekop / tong sampah direktori dan output dihantar ke capaian.log di dalam / rumah / sekop / tong sampah direktori.

Pada mulanya / tmp / i_must_be_di sini fail tidak ada, jadi saya mendapat ralat di ralat.log fail seperti yang anda lihat.

The capaian.log fail kosong buat masa ini.

Sekarang saya akan membuat fail / tmp / i_must_be_di sini

Dan seperti yang anda lihat, outputnya ada di capaian.log fail sekarang.

Sekiranya anda mahu, anda boleh mengarahkan output dan kesalahan dalam fail yang sama seperti berikut:

Seperti yang anda lihat, output STDIN dan STDERR dihantar ke keluar.log fail.

Memastikan Pekerjaan Terakhir Selesai Berjalan Sebelum Menjalankan Pekerjaan Lagi:

Agar ini dapat berfungsi, anda boleh membuat fail sementara sejurus tugas bermula dan membuangnya sebelum selesai. Kemudian anda boleh memeriksa sama ada fail sementara ada sebelum memulakan tugas. Sekiranya berlaku, anda boleh keluar dari pekerjaan dan menjalankan tugas hanya apabila fail sementara tidak tersedia.

Skrip ringkas ini betul-betul berlaku.

Seperti yang anda lihat, pemasa.pid fail dibuat.

Membaca capaian.log fail membuktikan bahawa tugas cron tidak dijalankan sebelum tugas cron sebelumnya selesai dijalankan. Seperti yang anda lihat, ia berjalan pada 01:32:01 dan lain kali ia berjalan pada 01:33:01, tetapi tidak. Sebaliknya, ia berjalan pada 01:35:01, kira-kira 3 minit kemudian.

Menyusun Output Pekerjaan Cron untuk Debugging Mudah:

Anda boleh memformat output dengan baik untuk membuat kerja cron anda lebih mudah untuk debug.

Contoh bagaimana ia dapat dilakukan diberikan dalam skrip berikut.

Seperti yang anda lihat, output, kesalahan dan mesej kejayaan dicetak dengan baik dalam fail log.

Anda boleh melakukan perkara yang menakjubkan dengan pekerjaan cron dan skrip shell. Saya menunjukkan beberapa idea di sini. Tetapi langit adalah had anda. Jangan ragu untuk bereksperimen dengan idea yang anda ada. Terima kasih kerana membaca artikel ini.