Menjadualkan tugas berkala menggunakan Cron dalam Linux
cron
ialah program Linux yang digunakan untuk menjadualkan arahan atau skrip untuk dilaksanakan pada masa yang akan datang. Ia juga boleh digunakan untuk menjadualkan arahan dan skrip yang dijalankan secara berkala. Program yang dijadualkan menggunakan cron biasanya dirujuk sebagai Pekerjaan Cron. Penggunaan utamanya adalah untuk tugas Pentadbiran Sistem seperti sandaran biasa, kemas kini perisian biasa dan tugas penyelenggaraan lain yang serupa.
pengenalan
cron
berjalan sebagai daemon dalam Linux, iaitu, sebagai proses latar belakang. Ia membolehkan pengguna menjadualkan kerja terus dengan arahan crontab, yang membuka fail konfigurasi yang dipanggil Fail Cron dalam editor. Fail Cron Berasingan dicipta untuk setiap pengguna.
Mencipta Fail Cron dan Sintaks Asas
The crontab
arahan boleh dilaksanakan dengan -e
bendera untuk mengedit Fail Cron sedia ada. Jika fail itu belum wujud, ia akan dibuat. Jika pengguna memanggil arahan untuk kali pertama dan jika terdapat berbilang editor fail yang dipasang pada sistem Linux, arahan itu akan meminta pengguna memilih editor lalai daripada senarai editor.
Selepas memilih editor, fail cron untuk pengguna akan dibuat dan dibuka. Anda kini boleh menentukan kerja dalam fail.
Sintaks umum untuk menentukan Kerja Cron ialah:
Pada asasnya, akan berjalan pada 'minit' (0-59), 'jam' (0-23), 'hari dalam bulan' (1-31), bulan (1-12) yang ditentukan, hari dalam minggu, (0-7, Untuk hari Ahad, sama ada 0 atau 7 boleh digunakan) dalam Cron Job. Untuk memudahkan, mari kita ambil contoh:
1 2 3 4 5 bergema "Hello"
Ini bermakna perintah bergema "Hello"
akan dijalankan pada setiap hari kelima dalam minggu (Jumaat) dan setiap hari ke-3 dalam bulan itu, pada setiap bulan ke-4 tahun itu (April), pada masa 02:01 (jam ke-2 minit pertama).
Jika arahan yang sama akan dijalankan setiap hari pada 02:01, sintaks akan kelihatan seperti:
1 2 * * * gema "Hello"
The *
menandakan 'sentiasa' atau 'untuk semua', cth. untuk semua bulan, untuk semua hari dalam minggu, dsb.
Pengendali arahan (,
) boleh digunakan untuk memasukkan senarai nilai apabila tugasan harus diulang. Sebagai contoh:
0 2,3,4 * * * gema "Hello"
Ini akan menjalankan program pada pukul 2 pagi, 3 pagi dan 4 pagi, setiap hari.
Begitu juga, tanda sempang (-
) pengendali boleh digunakan untuk menentukan julat yang tugas itu akan berulang. Sebagai contoh:
0-20 2 * * * gema "Hello"
Ini akan menjalankan program pada 02:00, 02:01, 02:02, dan seterusnya sehingga 02:20.
Akhirnya, kita ada garis miring ( /
) pengendali. Operator ini digunakan untuk menentukan nilai selang mengikut mana tugas itu akan diulang. Cth. */15
dalam ruangan minit bermakna tugasan itu perlu diulang setiap 15 minit. 2-10/2
dalam medan jam menyatakan bahawa tugasan itu akan berulang antara 2 PG dan 10 PG selepas setiap selang 2 jam (2 PG, 4 PG, 6 PG, 8 PG, 10 PG).
*/15 2-10/2 * * * gema "Hello"
Selepas anda membuat entri dalam Fail Cron, simpan fail dan keluar dari editor.
Anda harus melihat a 'memasang crontab baharu' mesej dalam terminal selepas menyimpan dan keluar daripada fail crontab.
Makro
Makro tertentu dipratakrifkan dalam Cron yang menentukan beberapa selang masa yang biasa diperlukan, seperti setiap jam, setiap hari, setiap bulan, dsb.
Untuk menjalankan tugas sekali setiap hari pada permulaan hari, iaitu pada 00:00, gunakan makro @harian
. Ini bersamaan dengan 0 0 * * *
.
Anda boleh meletakkan ini dalam fail Cron dengan cara yang sama seperti yang diterangkan sebelum ini.
Dalam cara yang sama, makro lain boleh digunakan, iaitu. @setiap jam
(Minit 0 setiap jam), @bulanan
(00:00 hari pertama bulan itu), @setiap minggu
(00:00 hari pertama minggu, @tahunan
(00:00 pertama Januari setiap tahun), @reboot
(pada setiap permulaan komputer).
Kesimpulan
Dalam artikel ini, kami mempelajari cara menambah Cron Jobs untuk pelaksanaan biasa di Linux. Penggunaan Cron Jobs yang betul berguna walaupun untuk tugas manual yang paling menjelikkan yang dihadapi oleh pengguna, Cth. pemadaman biasa log lama, mengarkibkan semua jenis data sejuk (data yang jarang diakses), dsb.