Pekerjaan Cron: Tutorial Pemula Lengkap

Cron Jobs Complete Beginners Tutorial



Cron adalah utiliti yang paling berguna dalam sistem operasi seperti Linux atau UNIX yang membolehkan menjalankan perintah atau skrip pada jadual tertentu tanpa campur tangan pengguna. Perintah dan skrip yang dijadualkan juga dinamakan sebagai pekerjaan cron. Ini kebanyakannya digunakan untuk mengotomatisasi pekerjaan berulang seperti menjalankan sandaran berjadual, membersihkan fail sementara, penyelenggaraan sistem, dan pelbagai pekerjaan berulang lainnya. Ia serupa dengan Penjadual Tugas di OS Windows.

Dalam tutorial ini, kami akan memberi anda pengenalan asas mengenai semua perkara yang perlu anda fahami untuk menjadualkan pekerjaan dengan cron. Ini merangkumi sintaks asas cron, menyunting fail crontab, menjadualkan pekerjaan dengan cron dengan beberapa contoh, melihat kerja cron, dll.







Asas Kerja Cron

Mari kita fahami beberapa asas pekerjaan cron.



Apa itu Crond?

Crond adalah daemon dalam sistem Linux yang berjalan di latar belakang dan memeriksa setiap minit untuk melihat apakah ada pekerjaan yang dijadwalkan pada waktu itu. Sekiranya ada, ia melaksanakan tugas itu, jika tidak, ia tetap tidak aktif.



Sintaks Pekerjaan Cron

Sintaks untuk kerja cron adalah seperti berikut:





* * * * *arahan/skrip

Dari kiri:

  • Yang pertama * sepadan dengan Minit (0-59)
  • Yang kedua * sesuai dengan Jam (0-23)
  • Yang ketiga * sepadan dengan Hari dalam bulan (1-31)
  • * Keempat * sepadan dengan Bulan tahun (1-12)
  • Kelima * sepadan dengan Hari dalam seminggu (0-6, Ahad hingga Sabtu)

Untuk menentukan beberapa nilai dalam bidang, gunakan simbol operator berikut:



  1. Tanda bintang (*): Untuk menentukan semua nilai yang mungkin untuk medan
  2. Sengkang (-): Ke s nyatakan pelbagai nilai
  3. Tanda koma (,): Untuk menentukan senarai nilai
  4. Pemisah (/): Untuk menentukan nilai langkah

Menyunting Fail Crontab

Crontab adalah fail yang mengandungi tugas yang dijadualkan dalam sintaks tertentu. Terdapat dua jenis fail crontab; satu untuk pekerjaan cron khusus sistem dan satu lagi untuk pekerjaan cron khusus pengguna.

Pekerjaan cron sistem

Pekerjaan cron seluruh sistem terletak di / etc / crontab fail dan /etc/cron.d direktori, dan mereka dijalankan melalui /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly dan /etc/cron.bulan. Hanya pentadbir sistem yang dapat mengakses fail-fail ini.

Pentadbir sistem dapat menentukan tugas cron menggunakan perintah berikut:

$nano /dan lain-lain/crontab

Berikut adalah sintaks pekerjaan di / etc / crontab fail:

# min jam arahan hari pengguna haribulan minggu
* * * * *pengguna1ifconfig

Pekerjaan cron khusus pengguna

Pekerjaan cron khusus pengguna terletak di / var / spool / cron / crontabs direktori. Walaupun anda dapat mengedit pekerjaan ini secara manual, disarankan untuk mengedit pekerjaan ini menggunakan perintah crontab -e.

Pengguna standard dapat menentukan pekerjaan cron menggunakan perintah berikut:

$crontab-Dan

Sebagai contoh, jika anda masuk sebagai pengguna ujian, menjalankan perintah crontab -e akan mengedit fail crontab untuk pengguna ujian. Begitu juga, jika anda log masuk sebagai pengguna root, perintah crontab -e akan menyunting fail crontab untuk pengguna root.

Keluarkan arahan di bawah di Terminal untuk mengedit fail crontab untuk pengguna lain:

$sudocrontab-u <nama pengguna> -Dan

Sebagai contoh, jika anda log masuk sebagai pengguna test1 dan ingin mengedit fail crontab untuk pengguna test2, perintahnya adalah:

$sudocrontab-uujian2-Dan

Berikut adalah sintaks pekerjaan cron yang boleh ditambahkan dalam fail crontab:

# m h arahan dayofmonth bulan dayofweek
* * * * * ifconfig

Anda dapat melihat dalam pekerjaan khusus pengguna bahawa tidak ada nama pengguna yang diajukan.

Perintah Crontab

Perintah crontab digunakan untuk mengedit, menyenaraikan, dan membuang tugas cron:

  • crontab -e Untuk mengedit fail crontab pengguna semasa
  • crontab -l Untuk memaparkan kandungan fail crontab
  • crontab -u [nama pengguna] Untuk mengedit fail crontab pengguna lain
  • crontab -r Untuk membuang fail crontab pengguna semasa
  • crontab -i Untuk memaparkan arahan sebelum membuang fail crontab pengguna semasa

Menjadualkan Pekerjaan dengan Cron

Dengan Cron, anda dapat menjalankan tugas pada waktu, tanggal, dan selang waktu tertentu dengan unit minimum dalam beberapa minit, iaitu, anda dapat menjalankan tugas setiap minit.

Untuk menjadualkan tugas dengan cron, buka fail crontab menggunakan kaedah yang dibincangkan di bahagian sebelumnya. Sebaik sahaja anda membuka fail crontab, anda akan diminta memilih penyunting teks. Taipkan nombor untuk memilih penyunting teks pilihan anda. Tatal ke bawah hingga ke bawah fail dan tambahkan tugas dalam sintaks yang dijelaskan di atas. Setiap baris dalam fail menentukan satu perintah. Lima entri pertama dalam baris menentukan waktu yang dijadualkan, dan entri terakhir menentukan arahan atau skrip mana yang harus dijalankan.

Contoh:

Baris berikut dalam fail crontab akan menjadualkan tugas cron untuk menjalankan perintah / skrip pada setiap minit ke-30 lewat 5 jam pada setiap hari dalam seminggu dari hari Isnin hingga Sabtu.

* /30 5 * * 1-6arahan/skrip

Minit

Dalam bidang ini, kita menentukan minit ketika kita mahu perintah itu dilaksanakan. Ia ditentukan dari 0 hingga 59. * dalam bidang ini bermaksud menjalankan tugas setiap minit. Pada baris crontab di atas, * / 30 memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap 30 minit.

Jam

Dalam bidang ini, kita menentukan waktu-waktu ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 0 hingga 23. * dalam bidang ini bermaksud menjalankan tugas setiap jam. Pada baris crontab di atas, nilai 5 memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap lima jam.

Hari bulan

Dalam bidang ini, kita menentukan hari-hari tertentu bulan ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 1 hingga 31. * dalam bidang ini bermaksud setiap hari. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap hari.

Bulan dalam setahun

Dalam bidang ini, kita menentukan bulan-bulan tertentu ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 1 hingga 12. The * dalam bidang ini bermaksud setiap bulan. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap bulan.

Hari dalam seminggu

Dalam bidang ini, kita menentukan hari-hari tertentu dalam seminggu ketika kita mahu perintah itu dilaksanakan. Ia ditentukan dari 0 hingga 6 dari hari Ahad hingga Sabtu (0 untuk hari minggu dan 6 untuk hari Sabtu). * Dalam bidang ini bermaksud setiap hari dalam seminggu. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap hari dalam seminggu.

Contoh Pekerjaan Cron

Berikut adalah beberapa contoh pekerjaan cron:

Jalankan tugas cron setiap 15 minit

Untuk menjadualkan kerja cron dijalankan setiap 15 minit, tambahkan baris di bawah dalam fail crontab:

* /lima belas * * * *arahan/skrip

Jalankan kerja cron pada pukul 5 pagi setiap hari

Untuk menjadualkan kerja cron dijalankan pada pukul 5 pagi setiap hari, tambahkan baris di bawah dalam fail crontab:

0 5 * * *arahan/skrip

Jalankan kerja cron pada pukul 5 petang setiap hari

Untuk menjadualkan kerja cron dijalankan pada jam 5 petang setiap hari, tambahkan baris di bawah dalam fail crontab:

0 17 * * *arahan/skrip

Jalankan kerja cron pada jam 9 pagi pada hari pertama setiap bulan

Untuk menjadualkan kerja cron dijalankan pada jam 9 pagi pada hari pertama setiap bulan, tambahkan baris di bawah dalam fail crontab:

0 9 1 * *arahan/skrip

Jalankan pekerjaan cron setiap jam pada setiap 15 Mac

Untuk menjadualkan kerja cron setiap jam pada setiap 15 Mac, tambahkan baris di bawah dalam fail crontab:

0 * lima belas 3 *arahan/skrip

Jalankan kerja cron setiap 5 jam

Untuk menjadualkan kerja cron setiap 5 jam, tambahkan baris di bawah dalam fail crontab:

0 * /5 * * *arahan/skrip

Jalankan tugas cron setiap 15 minit

Untuk menjadualkan kerja cron dijalankan setiap 15 minit, tambahkan baris di bawah dalam fail crontab:

* /lima belas * * * *

Menggunakan Rentetan

Rentetan berikut juga dapat digunakan untuk menentukan pekerjaan:

  1. @jamur: Untuk melaksanakan tugas sekali setiap jam, iaitu, 0 * * * *
  2. @ tengah malam: Untuk melaksanakan pekerjaan sekali setiap hari, iaitu, 0 0 * * *
  3. @ harian: sama seperti tengah malam
  4. @setiap minggu: Untuk melaksanakan pekerjaan sekali setiap minggu, iaitu, 0 0 * * 0
  5. @bulan: Untuk melaksanakan pekerjaan sebulan sekali, iaitu, 0 0 1 * *
  6. @setiap tahun: Untuk melaksanakan pekerjaan sekali setiap tahun, iaitu, 0 0 1 1 *
  7. @tahun: sama seperti @annually
  8. @reboot: Untuk melaksanakan tugas sekali pada setiap permulaan

Sebagai contoh, untuk menjalankan skrip atau perintah setiap minggu, entri dalam file crontab adalah:

@arahan mingguan/skrip

Direktori Kron yang telah ditetapkan

Terdapat beberapa direktori cron yang telah ditentukan di Linux di mana skrip yang disimpan secara automatik dijalankan. Sekiranya kita meletakkan sebarang skrip di bawah direktori ini, skrip tersebut akan dijalankan secara automatik pada waktu yang dikonfigurasi.

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.bulan
  • /etc/cron.weekly

Sebagai contoh, untuk melaksanakan skrip sebulan sekali, anda perlu meletakkannya di /etc/cron.monthly.

Lihat Pekerjaan Cron

Lihat pekerjaan untuk pengguna semasa

Gunakan arahan berikut untuk melihat semua pekerjaan cron yang dijadualkan untuk pengguna semasa:

$crontab-tempat

Lihat pekerjaan untuk pengguna root

Untuk melihat semua pekerjaan yang dijadualkan dari pengguna root, keluarkan perintah berikut di Terminal:

$kucing /dan lain-lain/crontab

Anda perlu log masuk sebagai pengguna root atau menjalankan perintah sebagai sudo.

Lihat pekerjaan untuk pengguna lain

Untuk melihat semua pekerjaan yang dijadualkan dari pengguna tertentu, berikan perintah berikut di Terminal menggantikan dengan nama pengguna sebenarnya:

$sudocrontab-u <nama pengguna> -tempat

Untuk menjalankan perintah ini, anda memerlukan hak istimewa sudo.

Lihat pekerjaan cron setiap jam

Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk berjalan setiap jam, keluarkan perintah berikut di Terminal:

$ls -tempat /dan lain-lain/cron.hourly

Lihat pekerjaan cron setiap hari

Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap hari, keluarkan perintah berikut di Terminal:

$ls -tempat /dan lain-lain/cron.daily/

Lihat pekerjaan cron mingguan

Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap minggu, keluarkan arahan berikut di Terminal:

$ls -tempat /dan lain-lain/cron.weekly/

Lihat pekerjaan cron bulanan

Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap bulan, keluarkan perintah berikut di Terminal:

$ls -tempat /dan lain-lain/cron.bulan/

Sandarkan Semua Pekerjaan Cron

Sebaiknya simpan cadangan semua pekerjaan cron dalam fail sehingga anda dapat pulih sekiranya berlaku penghapusan. Untuk membuat sandaran semua pekerjaan semasa, gunakan operator pengalihan untuk mengarahkan output crontab -l ke fail.

$crontab-tempat >cadangan_cron.txt

Membuang Semua Kerja Kron Berjadual

Untuk membuang semua pekerjaan cron yang dijadualkan, gunakan bendera -r seperti berikut:

$crontab-r

Kebenaran Cron

Kita boleh menghadkan akses ke perintah crontab melalui dua fail: / dll / cron.allow dan / etc / cron.deny.

  • /etc/cron.allow - Tambahkan pengguna (satu per baris) yang anda mahu izinkan akses ke perintah crontab. Pengguna ini dapat menjalankan tugas jadual.
  • /etc/cron.deny - Tambahkan pengguna (satu per baris) yang anda mahu menolak akses ke perintah crontab. Pengguna ini tidak dapat menjalankan tugas yang dijadualkan.

Penjana Sintaks Crontab

Terdapat beberapa laman web yang membolehkan menghasilkan sintaks untuk crontabs. Laman web ini menjadikannya lebih mudah untuk menghasilkan ekspresi crontab tanpa perlu mengingat sintaksnya. Walaupun terdapat pelbagai laman web yang tersedia untuk penjana sintaks seperti crontabgenerator.com , crontab-generator.org , dan cronmaker.com . Yang paling saya gemari dan paling berguna adalah crontab.guru . Berdasarkan input pengguna, ia menghasilkan ungkapan crontab yang boleh anda copy-paste ke dalam file crontab.

Kesimpulannya

Dalam tutorial ini, kami telah menerangkan asas-asas pekerjaan cron, sintaksnya, dan cara menyiapkannya. Kami juga telah membincangkan cara melihat pekerjaan cron, membuat sandaran, dan menghapusnya jika tidak diperlukan lagi.