Crontab di Linux dengan 20 contoh berguna untuk menjadualkan pekerjaan

Crontab di Linux dengan 20 contoh berguna untuk menjadualkan pekerjaan

Adakah anda menjalankan pekerjaan cron di pelayan anda setiap minit? Adakah anda pentadbir sistem atau jurutera yang harus menguruskan pekerjaan cron setiap hari? Adakah anda terus melupakan sintaks untuk menubuhkan pekerjaan cron baru? Sekiranya ya, baca terus.

Cron adalah bahagian penting dari mana -mana sistem, kerana ia mengautomasikan pelbagai tugas yang dijadualkan. Perintah Crontab digunakan untuk mengedit dan menguruskan pekerjaan Cron. Membuat pekerjaan Cron tidak sukar, tetapi ia boleh menjadi rumit ketika berurusan dengan banyak pengguna dan persekitaran. Sintaks Crontab kebanyakannya sama di semua pengagihan dan pelayan Linux, jadi sebaik sahaja anda mendapat gantungnya, anda akan menjadualkan tugas dalam masa yang singkat!

Dalam tutorial ini, anda akan belajar menggunakan Crontab dengan 20 contoh berguna untuk penjadualan pekerjaan. Anda juga boleh menggunakan Crontab untuk tugas -tugas untuk dijalankan sekali sahaja pada masa akan datang sahaja, tetapi untuk sebarang tugas yang akan dijalankan sebaik sahaja kami mengesyorkan menggunakan arahan Linux.

Sekiranya anda tidak mempunyai Crontab yang dipasang pada sistem anda, rujuk artikel Pasang Crontab di Centos/RHEL.

Sintaks Linux Crontab

Format fail crontab sangat mudah: setiap baris mengandungi enam medan, dipisahkan oleh ruang. Bidang pertama menentukan minit (0-59) apabila tugas akan dijalankan, medan kedua menentukan jam (0-23), medan ketiga menentukan hari bulan (1-31), dan sebagainya. Kad liar juga boleh digunakan dalam fail crontab. Sebagai contoh, asterisk dalam bidang keempat menunjukkan bahawa pekerjaan itu perlu dijalankan setiap minggu.

       

  • Minit - Nilai satu minit boleh antara 0-59
  • Jam - Nilai jam boleh antara 0-23
  • Day_of_the_month - Nilai ini boleh antara 1-31. Selama berbulan -bulan yang lebih sedikit hari akan mengabaikan bahagian yang tinggal
  • Month_of_the_year - Ini boleh antara 1-12. Anda juga boleh menentukan nilai ini dengan tiga abjad pertama bulan seperti Jan, Feb, Mar, APR dll.
  • Hari dalam seminggu - Ini boleh menjadi nilai antara 0-7. Di mana 0 dan 7 untuk hari Ahad, 1 untuk Isnin, 2 untuk Selasa, dan sebagainya. Anda juga boleh menggunakan tiga abjad pertama hari seperti matahari, mon, tue, wed, dll.

Sekarang, pernyataan di bawah akan menerangkan cara menentukan pelbagai nilai atau julat. Baca di bawah dan faham.

  • Astrics (*) - Sepadan dengan apa sahaja
  • Nilai berganda - Gunakan perintah (,) untuk menentukan pelbagai nilai seperti 2,4,8 atau matahari, Fri atau Jan, Okt, dec dll.
  • Tentukan julat - Anda boleh menentukan julat menggunakan tanda hubung seperti: 1-10 atau 20-30 atau Sun-Fri atau Feb-Apr
  • Tentukan pelbagai julat - Anda boleh menentukan pelbagai julat dengan arahan yang dipisahkan seperti: Jan-Mar, Jul-Sep

Cara Menambah/Mengedit Crontab

Fail Crontab biasanya disimpan dalam /etc /cron.D/ direktori pada sistem linux. Perintah Crontab boleh digunakan untuk mengedit fail Crontab.

Crontab -e 

Secara lalai, ia akan mengedit entri crontab pengguna yang sedang dilog masuk. Untuk mengedit Crontab Pengguna lain gunakan arahan di bawah:

Crontab -u Nama Pengguna -E 

Tukar Editor Pemboleh ubah persekitaran untuk menukar editor lalai anda.

Cara menyenaraikan Crontab

Untuk melihat penyertaan Crontab pengguna semasa menggunakan arahan berikut.

Crontab -l 

Gunakan -u diikuti dengan nama pengguna untuk melihat entri crontab pengguna yang ditentukan.

Crontab -u Nama Pengguna -L 

20 Contoh Berguna untuk Penjadualan Crontab

Berikut adalah senarai contoh untuk penjadualan pekerjaan cron dalam sistem linux menggunakan Crontab.

  1. Jadualkan Cron untuk dilaksanakan pada pukul 2 pagi setiap hari.
  2. Ini berguna untuk penjadualan sandaran pangkalan data setiap hari.

    0 2 * * * /bin /sh sandaran.sh 
    • Asterisk (*) digunakan untuk memadankan semua rekod.
  3. Jadualkan Cron untuk melaksanakan dua kali sehari.
  4. Perintah Contoh di bawah akan dilaksanakan pada pukul 5 pagi dan 5 petang setiap hari. Anda boleh menentukan setem berbilang masa dengan dipisahkan koma.

    0 5,17 * * * /skrip /skrip.sh 
  5. Jadualkan Cron untuk melaksanakan setiap minit.
  6. Umumnya, kami tidak memerlukan skrip untuk dilaksanakan setiap minit tetapi dalam beberapa kes, anda mungkin perlu mengkonfigurasinya.

    * * * * * * /skrip /skrip.sh 
  7. Jadualkan Cron untuk dilaksanakan setiap hari Ahad pukul 5 petang.
  8. Jenis kron ini berguna untuk melakukan tugas mingguan, seperti putaran log, dll.

    0 17 * * Sun /Skrip /Skrip.sh 
  9. Jadualkan Cron untuk melaksanakan setiap 10 minit.
  10. Sekiranya anda ingin menjalankan skrip anda pada selang 10 minit, anda boleh mengkonfigurasi seperti di bawah. Jenis kron ini berguna untuk pemantauan.

    */10 * * * */skrip/monitor.sh 

    */10: bermaksud menjalankan setiap 10 minit. Sama seolah -olah anda ingin melaksanakan setiap 5 minit Gunakan */5.

  11. Jadualkan Cron untuk dilaksanakan pada bulan yang dipilih.
  12. Kadang -kadang kita dikehendaki menjadualkan tugas untuk dilaksanakan untuk bulan terpilih sahaja. Contoh skrip contoh akan dijalankan pada bulan Januari, Mei, dan bulan Ogos.

    * * * Jan, Mei, Aug * /skrip /skrip.sh 
  13. Jadualkan kron untuk dilaksanakan pada hari -hari terpilih.
  14. Sekiranya anda memerlukan penjadualan tugas untuk dilaksanakan untuk hari -hari terpilih sahaja. Contoh di bawah akan berjalan pada setiap hari Ahad dan Jumaat pukul 5 petang.

    0 17 * * Sun, Fri /Script /Script.sh 
  15. Jadualkan Cron untuk dilaksanakan pada hari Ahad pertama setiap bulan.
  16. Untuk menjadualkan skrip untuk melaksanakan skrip pada hari Ahad pertama hanya tidak mungkin oleh parameter masa, tetapi kita boleh menggunakan keadaan dalam bidang arahan untuk melakukannya.

    0 2 * * Sun [$ (tarikh +%d) -le 07] && /skrip /skrip.sh 
  17. Jadualkan Cron untuk melaksanakan setiap empat jam.
  18. Sekiranya anda ingin menjalankan skrip pada selang 4 jam. Ia boleh dikonfigurasi seperti di bawah.

    0 */4 * * */skrip/skrip.sh 
  19. Jadualkan Cron untuk melaksanakan dua kali setiap hari Ahad dan Isnin.
  20. Untuk menjadualkan tugas untuk melaksanakan dua kali pada hari Ahad dan Isnin sahaja. Gunakan tetapan berikut untuk melakukannya.

    0 4,17 * * matahari, mon /skrip /skrip.sh 
  21. Jadualkan Cron untuk melaksanakan setiap 30 saat.
  22. Untuk menjadualkan tugas untuk melaksanakan setiap 30 saat tidak mungkin oleh parameter masa, tetapi ia boleh dilakukan dengan menjadualkan kron yang sama dua kali seperti di bawah.

    * * * * * * /skrip /skrip.sh * * * * * tidur 30; /skrip/skrip.sh 
  23. Jadualkan pelbagai tugas dalam satu kron.
  24. Untuk mengkonfigurasi pelbagai tugas dengan satu kron boleh dilakukan dengan memisahkan tugas oleh titik koma (;).

    * * * * * * /skrip /skrip.sh; /skrip/scrit2.sh 
  25. Jadualkan tugas untuk melaksanakan setiap tahun (@Yearly).
  26. @Yearly Timestamp serupa dengan "0 0 1 1 *". Ia akan melaksanakan tugas pada minit pertama setiap tahun, mungkin berguna untuk menghantar ucapan tahun baru 🙂

    @Yearly /Scripts /Script.sh 
  27. Jadualkan tugas untuk melaksanakan bulanan (@monthly).
  28. @Bonthly Timestamp serupa dengan "0 0 1 * *". Ia akan melaksanakan tugas pada minit pertama bulan ini. Mungkin berguna untuk melakukan tugas bulanan seperti membayar bil dan invois kepada pelanggan.

    @bonthly /scripts /script.sh 
  29. Jadualkan tugas untuk melaksanakan mingguan (@weekly).
  30. A @setiap minggu Timestamp serupa dengan "0 0 * * matahari". Ia akan melaksanakan tugas pada minit pertama dalam seminggu. Mungkin berguna untuk melakukan tugas mingguan seperti pembersihan sistem dll.

    @weekly /bin /skrip.sh 
  31. Jadualkan tugas untuk dilaksanakan setiap hari (@daily).
  32. @daily Timestamp serupa dengan "0 0 * * *". Ia akan melaksanakan tugas pada minit pertama setiap hari, mungkin berguna untuk melakukan tugas harian.

    @daily /skrip /skrip.sh 
  33. Jadualkan tugas untuk melaksanakan setiap jam (@hourly).
  34. @hourly Timestamp serupa dengan "0 * * * *". Ia akan melaksanakan tugas pada minit pertama setiap jam, mungkin berguna untuk melakukan tugas setiap jam.

    @hourly /skrip /skrip.sh 
  35. Jadualkan tugas untuk dilaksanakan pada reboot sistem (@reboot).
  36. @reboot berguna untuk tugas -tugas yang anda ingin jalankan pada permulaan sistem anda. Ia akan sama dengan skrip permulaan sistem. Ia berguna untuk memulakan tugas di latar belakang secara automatik.

    @reboot /skrip /skrip.sh 
  37. Mengalih arah Cron Hasil ke akaun e -mel yang ditentukan.
  38. Secara lalai, Cron menghantar butiran kepada pengguna semasa di mana Cron dijadualkan. Sekiranya anda ingin mengalihkannya ke akaun anda yang lain, boleh dilakukan dengan menyediakan pemboleh ubah mel seperti di bawah

    Crontab -l  Mel = bob 0 2 * * * /script /sandaran.sh 
  39. Ambil sandaran semua kron ke fail teks biasa.
  40. Saya cadangkan menyimpan sandaran semua entri pekerjaan dalam fail. Ini akan membantu anda memulihkan kron sekiranya berlaku penghapusan secara tidak sengaja.

    Semak Cron yang dijadualkan semasa:

    Crontab -l  Mel = Rahul 0 2 * * * /script /sandaran.sh 

    Cron sandaran ke fail teks:

    # Crontab -L> Cron -backup.TXT # CAT CRON-BACKUP.txt mail = Rahul 0 2 * * * /script /sandaran.sh 

    Mengeluarkan Cron Berjadual semasa:

    # crontab -r # crontab -l tiada crontab untuk root 

    Pulihkan Cron dari Fail Teks:

    # Crontab Cron-backup.txt # crontab -l mail = rahul 0 2 * * * /script /sandaran.sh 

Kesimpulan

Terima kasih kerana membaca artikel ini, saya harap ia akan membantu anda memahami Crontab di Linux. Untuk menjadualkan tugas satu masa, anda juga boleh menggunakan arahan Linux di.