Pekerjaan Cron atau Cron adalah penjadual berdasarkan masa yang biasa dalam sistem Linux / Unix. Ia menjadualkan tugas pengguna tertentu untuk dijalankan secara berkala dalam tarikh, waktu, atau selang waktu yang tetap. Sebilangan besar tugas ini adalah skrip untuk menjalankan fungsi seperti sandaran dan lain-lain. Untuk membuat pekerjaan cron ini, kami menggunakan perintah crontab. Crontab adalah arahan / utiliti UNIX yang digunakan untuk membuat dan mengurus pekerjaan cron.
Seperti yang akan anda lihat di bawah, membuat dan menyunting tugas cron adalah sangat mudah. Bahagian yang paling mengagumkan ialah anda tidak perlu menghidupkan semula cron atau bahkan PC anda setelah membuat atau menyunting kerja cron. Simpan fail sahaja, dan anda boleh pergi.
Penggunaan Cron Jobs yang biasa
- Menetapkan masa perkakasan: Protokol Masa Rangkaian digunakan oleh banyak komputer untuk menetapkan waktu sistem tetapi tidak menetapkan masa perkakasan. Dengan cron, anda boleh menetapkan masa perkakasan berdasarkan masa sistem.
- Menjadwalkan tugas dan menjalankan program yang menjalankan program harian: Dengan perkhidmatan cron, anda dapat menjalankan banyak perkhidmatan sistem yang memerlukan permintaan harian seperti Logwatch.
- Membersihkan direktori secara automatik, menjalankan program sandaran, dan banyak lagi.
Bahagian asas perintah cron
Sintaks standard crontab adalah seperti di bawah:
a b c d e PENGGUNA / jalan / ke / output skrip
1.Masa dan tarikh bersama dengan bagaimana pengulangan pekerjaan akan ditentukan oleh lima bidang:
-
- a: Minit: (Mulai dari 0 - 59)
- b: Jam: (Mulai dari 0 - 23 )
- c: Hari: (Mulai dari 0 - 31 )
- d: Bulan: (Mulai dari 0 - 12 )
- e: Hari dalam seminggu: (Mulai dari 0 - 7. )
- a: Minit: (Mulai dari 0 - 59)
Catatan: Hari bermula dengan hari Isnin. 0 dan 7 mewakili hari Ahad
2. PENGGUNA
: Ingatlah untuk menggantinya dengan nama pengguna anda
3. Lokasi dan skrip tertentu yang akan dijalankan oleh cron ditentukan oleh segmen ketiga:
/ jalan / ke / skrip
4. Bahagian terakhir menentukan pemberitahuan kepada pengguna setelah menyelesaikan tugas sebagai cara untuk memantau tugas:
pengeluaran
Walau bagaimanapun, peti masuk anda mungkin penuh dengan tugas kecil yang sering disalurkan. Untuk mengelakkan ini, anda boleh mematikan output e-mel automatik dengan menambahkan rentetan di bawah pada perintah cron anda:
> / dev / null 2> & 1 e.g a b c d e PENGGUNA / jalan / ke / skrip> / dev / null 2> & 1
Selain itu, cron menggunakan empat lagi nilai yang digunakan dalam menentukan beberapa nilai dalam medan. Mereka adalah:
- Tanda bintang (*): Merujuk kepada semua nilai dalam bidang.
- Tanda koma (,): Gunakan untuk memisahkan senarai nilai dalam perintah cron.
- Sengkang (-): Tentukan julat nilai.
- Garis depan ke hadapan (/): membahagi nilai menjadi beberapa langkah yang berbeza.
Menyiapkan pekerjaan cron
Perintah crontab bertanggungjawab untuk membuat dan menyunting pekerjaan cron kerana fail cron tidak boleh diedit secara langsung. Crontab menentukan bagaimana anda boleh membuat, mengedit, menyenaraikan, menyahpepijat, memasang, dan menyahpasang tugas cron.
Sebelum memulakan pekerjaan cron, adalah mustahak untuk memastikan Linux Desktop atau Server anda terkini dengan melaksanakan perintah di bawah:
sudo apt update sudo apt upgrade
Sekiranya anda tidak memasang pakej cron pada sistem anda, pasangkannya dengan arahan di bawah:
sudo apt-get install cron
Cara mengedit fail crontab?
Untuk menyelesaikan proses, anda perlu mengkonfigurasi kerja cron. Pengguna log masuk apabila pekerjaan cron dibuat secara automatik menjadi pemiliknya. Itu boleh diubah dengan membuat pemilik pekerjaan yang akan bertanggungjawab menguruskan pekerjaan cron, seperti yang akan kita lihat dalam catatan ini.
Untuk membuka fail konfigurasi crontab untuk pengguna yang sedang log masuk, jalankan perintah di bawah:
crontab -e
Anda akan diminta oleh sistem untuk memilih penyunting yang sesuai. Dalam kes kami, kami akan memilih pilihan pertama (penyunting nano).
Anda boleh menambahkan satu tugas yang dijadualkan setiap baris mengikut pilihan anda.
Setelah menambahkan tugas, selesaikan dengan menyimpan fail dan keluar. Semua arahan yang diberikan akan dibaca dan dilaksanakan oleh cron daemon. Perubahan akan berlaku walaupun tanpa memulakan semula sistem anda kerana repositori dikemas kini secara automatik.
Edit crontab untuk Pengguna Berbeza
Crontab boleh diedit untuk pengguna yang berbeza menggunakan perintah dalam sintaks di bawah:
crontab -u other_username -e
Cara menggunakan watak khas dalam perintah crontab
Karakter dan operator menentukan lebih banyak penyesuaian sistem anda kerana mereka memperluas kemampuan tugas cron.
- Slash digunakan untuk membahagikan rentetan masa ke dalam langkah-langkah yang ditentukan. Sebagai contoh, untuk membuat cadangan setiap 30 minit, Kami dapat menggunakan:
* / 30 * * * *
- Tanda bintang (*) digunakan untuk melaksanakan semua nilai yang akan dilaksanakan. Contohnya:
* / 15 ***
- Tanda sempang (-) digunakan untuk menentukan julat aktiviti, seperti jumlah hari. Untuk
contohnya, menjalankan kod pada pukul 6 pagi setiap hari kerja, kita akan menggunakan;
0 6 * * 1-5 / root / sandaran.sh
Di sini, 06 bermaksud 6 pagi 1-5 bermaksud bilangan hari (Isnin hingga Jumaat).
- Koma menentukan keadaan individu ketika kod tersebut harus dijalankan:
0 4 * * 2,4 / root / sandaran.sh
Perintah di atas akan melaksanakan kod skrip anda pada jam 4 pagi pada hari Selasa dan Khamis.
- Anda juga boleh menggabungkan pelbagai wildcard untuk menyesuaikan pesanan anda lebih banyak lagi. Sebagai contoh, untuk melaksanakan skrip kami setiap hari pada 35 minit setelah satu jam, kami boleh menggunakan arahan di bawah:
35 1-23 / 2 * * * / jalan / ke / skrip / skrip.sh
1-23 menentukan julat jam, / 2 menetapkan selang untuk setiap jam yang lain.
Pilihan Kron
- Senaraikan semua pekerjaan cron
Anda mungkin mahu menyenaraikan tugas cron dalam sistem anda tanpa membuka kunci fail konfigurasi crontab. Ini dapat dilakukan dengan melancarkan terminal anda dan mengetik perintah di bawah:
crontab -l
Perintah itu menyenaraikan semua pekerjaan cron yang ada dalam sistem anda.
- Padamkan semua pekerjaan crontab
Untuk menghapus semua perintah crontab, anda boleh menggunakan perintah di bawah ini:
crontab -r
- Padamkan tugas cron untuk pengguna lain.
crontab -r -u lain-nama pengguna
Gunakan Strings di Crontab
String adalah alat yang sangat berguna untuk pembangun kerana mereka mengelakkan penulisan berulang dari segmen kod. Nasib baik, crontabs menyokong pelbagai nilai rentetan. Ia merangkumi:
@jamur:
-sama seperti - "0 * * * *" (Dijalankan sekali setiap kali jam)@ tengah malam:
-sama seperti - "0 0 * * *" (Dijalankan sekali setiap kali hari)@ harian:
sama seperti tengah malam@setiap minggu:
-sama dengan - "0 0 * * 0" (Dilaksanakan setiap kali minggu)@bulan:
-sama seperti - "0 0 1 * *" (Dijalankan sekali setiap kali bulan)@setiap tahun:
-sama seperti - "0 0 1 1 *" (Dijalankan sekali setiap kali tahun)@tahun:
serupa dengan @annually@reboot:
Dilaksanakan sekali selepas setiap but semula / mulakan semula / permulaan.
Contoh yang baik; jika anda mempunyai skrip sandaran yang ingin anda jalankan setiap hari, gunakan arahan di bawah:
@hari / jalan / ke / cadangan_skrip.sh
Contoh pekerjaan cron
Berikut adalah senarai pekerjaan cron asas yang boleh digunakan semasa memulakan:
-
- Untuk menjalankan skrip setiap minit:
* * * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip setiap 40 minit:
40 * * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip setiap jam:
0 * * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip setiap tengah malam:
0 0 * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip setiap 23 minit selepas tengah malam, 2 pagi, dan 4 pagi setiap hari:
23 0-23 / 2 * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip pada 4.05 setiap hari Ahad.
5 4 * * matahari / skrip / jalan anda.sh
- Untuk menjalankan skrip pada pukul 10 malam selama seminggu.
0 22 * * 1-5 / skrip / jalan anda.sh
- Untuk menjalankan skrip pada 1 Disember - Tengah Malam.
0 0 0 12 * / skrip / jalan anda.sh
- Untuk menjalankan skrip pada hari Sabtu di Midnight.
0 0 * * 6 / skrip / jalan anda.sh
- Untuk menjalankan skrip Setiap Jam.
0 * * * * / skrip / jalan anda.sh
- Untuk menjalankan skrip setiap minit:
Dengan contoh asas ini, anda akan memahami dengan lebih mendalam mengenai urutan dan bagaimana ia dapat diubahsuai.
Mengehadkan akses Cron
Kami melihat bahawa pekerjaan cron dapat menjadi sangat berguna, terutama ketika anda ingin mengotomatisasi tugas anda. Walau bagaimanapun, ia juga boleh menjadi berisiko jika sistem membenarkan pengguna membuat pekerjaan cron. Walaupun tidak mempengaruhi data peribadi, beberapa pekerjaan cron mungkin memerlukan sumber daya sistem yang cukup banyak, sehingga ketinggalan PC. Untuk mengelakkan senario seperti itu, pentadbir sistem (pengguna root) dapat membuat / etc / cron.benarkan
atau / etc / cron.menafikan
fail yang mengandungi hanya pengguna yang boleh 'buat / tidak buat' pekerjaan cron.
The / etc / cron.benarkan
fail tersebut mengandungi pengguna yang dapat membuat, mengedit, memaparkan, atau membuang fail crontab. Sekiranya fail ini tidak ada, semua pengguna dapat membuat dan mengurus pekerjaan cron selain yang ada di / etc / cron.menafikan
fail. Sekiranya tidak ada fail ini yang ada, hak superuser diperlukan untuk menjalankan perintah crontab.
Sekarang kerana anda telah mencegah pengguna bukan root membuat pekerjaan cron jika mereka sudah memilikinya, anda mungkin mempertimbangkan untuk menambahkan pekerjaan cron mereka dalam fail crontab root. Tetapi inilah teka-teki - Dengan menambahkan pekerjaan cron mereka ke crontab root, bukankah itu menjalankan tugas cron mereka sebagai root? Nah, inilah pentingnya bidang USERNAME yang kita bincangkan di atas dalam sintaks perintah cron. Contohnya, arahan di bawah:
0 * * * * fosslinux / jalan / ke / skrip.sh
Akan dijalankan sebagai pengguna cron "fosslinux" dan bukan sebagai pengguna root.
Kesimpulannya
Anda kini mempunyai panduan yang jelas mengenai penggunaan pekerjaan Cron untuk mengotomatisasi pelbagai tugas pada sistem anda. Itu tidak boleh mengelirukan anda dengan aplikasi Permulaan. Gunakan contoh di atas untuk mencuba dan mengautomasikan skrip mudah. Dengan berlalunya masa, anda boleh menggabungkan watak khas dan kad liar untuk melakukan tugas yang lebih biasa. Sekiranya anda baru memulakan, ada baiknya membaca catatan kami di tutorial skrip bash dengan contoh yang akan membantu anda membuat skrip pertama anda.