Crontab di linux dengan 20 contoh berguna untuk menjadwalkan pekerjaan
- 686
- 10
- Luis Baumbach
Apakah Anda menjalankan pekerjaan cron di server Anda setiap menit? Apakah Anda seorang administrator atau insinyur sistem yang harus mengelola pekerjaan cron setiap hari? Apakah Anda terus melupakan sintaksis untuk menyiapkan pekerjaan cron baru? Jika demikian, baca terus.
Cron adalah bagian penting dari sistem apa pun, karena mengotomatiskan berbagai tugas yang dijadwalkan. Perintah crontab digunakan untuk mengedit dan mengelola pekerjaan cron. Membuat pekerjaan cron tidak sulit, tetapi bisa menjadi rumit saat berhadapan dengan banyak pengguna dan lingkungan. Sintaks crontab sebagian besar sama di semua distribusi dan server Linux, jadi begitu Anda terbiasa dengan tugas penjadwalan dalam waktu singkat!
Dalam tutorial ini, Anda akan belajar menggunakan crontab dengan 20 contoh yang berguna untuk penjadwalan pekerjaan. Anda juga dapat menggunakan crontab untuk tugas yang akan dijalankan sekali di masa mendatang, tetapi untuk setiap tugas yang dapat dijalankan setelah kami merekomendasikan menggunakan Linux di Command.
Jika Anda tidak menginstal crontab pada sistem Anda, lihat artikel Instal Crontab di CentOS/RHEL.
Sintaks Linux Crontab
Format file crontab sangat sederhana: setiap baris berisi enam bidang, dipisahkan oleh spasi. Bidang pertama menentukan menit (0-59) ketika pekerjaan akan dijalankan, bidang kedua menentukan jam (0-23), bidang ketiga menentukan hari bulan itu (1-31), dan seterusnya. Wildcard juga dapat digunakan dalam file crontab. Misalnya, tanda bintang di bidang keempat menunjukkan bahwa pekerjaan harus dijalankan setiap minggu.
- Menit - Nilai menit bisa antara 0-59
- Jam - Nilai satu jam bisa antara 0-23
- Day_of_the_month - Nilai ini bisa antara 1-31. Selama berbulan -bulan memiliki lebih sedikit hari akan mengabaikan bagian yang tersisa
- Bulan dari tahun - Ini bisa antara 1-12. Anda juga dapat mendefinisikan nilai ini dengan tiga huruf pertama bulan ini seperti Jan, Feb, Mar, Apr dll.
- Hari di minggu ini - Ini bisa menjadi nilai antara 0-7. Di mana 0 dan 7 untuk hari Minggu, 1 untuk Senin, 2 untuk Selasa, dan seterusnya. Anda juga dapat menggunakan tiga huruf pertama hari seperti Sun, Mon, Sel, Wed, dll.
Sekarang, pernyataan di bawah ini akan menjelaskan cara menentukan beberapa nilai atau rentang. Baca di bawah dan pahami.
- Astrics (*) - Cocok dengan apapun
- Beberapa nilai - Gunakan perintah (,) untuk mendefinisikan beberapa nilai seperti 2,4,8 atau matahari, Jumat atau Jan, Oct, dec dll.
- Tentukan rentang - Anda dapat mendefinisikan rentang menggunakan tanda hubung seperti: 1-10 atau 20-30 atau Sun-FRI atau FEB-APR
- Tentukan beberapa rentang - Anda dapat mendefinisikan beberapa rentang dengan perintah yang terpisah seperti: Jan-Mar, Jul-Sep
Cara menambah/mengedit crontab
File crontab biasanya disimpan di /etc /cron.D/ Direktori pada Sistem Linux. Perintah crontab dapat digunakan untuk mengedit file crontab.
crontab -e
Secara default, itu akan mengedit entri crontab dari pengguna yang saat ini masuk. Untuk mengedit pengguna lain crontab Gunakan perintah di bawah ini:
crontab -u nama pengguna -e
Mengubah EDITOR Variabel lingkungan untuk mengubah editor default Anda.
Cara mendaftar crontab
Untuk melihat entri crontab dari pengguna saat ini menggunakan perintah berikut.
crontab -l
Gunakan -u diikuti dengan nama pengguna untuk melihat entri crontab dari pengguna yang ditentukan.
crontab -u nama pengguna -l
20 contoh yang berguna untuk menjadwalkan crontab
Berikut adalah daftar contoh untuk menjadwalkan pekerjaan cron dalam sistem Linux menggunakan crontab.
- Jadwalkan cron untuk dieksekusi pada jam 2 pagi setiap hari.
Ini akan berguna untuk menjadwalkan cadangan basis data setiap hari.
0 2 * * * /Bin /sh cadangan.SH
- Asterisk (*) digunakan untuk mencocokkan semua catatan.
- Jadwalkan cron untuk mengeksekusi dua kali sehari.
Perintah contoh di bawah ini akan dieksekusi pada jam 5 pagi dan 5 sore setiap hari. Anda dapat menentukan beberapa perangko waktu dengan dipisahkan koma.
0 5,17 * * * /skrip /skrip.SH
- Jadwalkan cron untuk mengeksekusi setiap menit.
Secara umum, kami tidak memerlukan skrip apa pun untuk mengeksekusi setiap menit tetapi dalam beberapa kasus, Anda mungkin perlu mengonfigurasinya.
* * * * * /skrip /skrip.SH
- Jadwalkan cron untuk dieksekusi setiap hari Minggu pukul 17:00.
Jenis cron ini berguna untuk melakukan tugas mingguan, seperti rotasi log, dll.
0 17 * * Sun /Scripts /Script.SH
- Jadwalkan cron untuk dieksekusi setiap 10 menit.
Jika Anda ingin menjalankan skrip Anda pada interval 10 menit, Anda dapat mengonfigurasinya seperti di bawah ini. Jenis cron ini berguna untuk pemantauan.
*/10 * * * */skrip/monitor.SH
*/10: berarti berlari setiap 10 menit. Sama seperti jika Anda ingin mengeksekusi setiap 5 menit Gunakan */5.
- Jadwalkan cron untuk dieksekusi pada bulan yang dipilih.
Terkadang kami diminta untuk menjadwalkan tugas yang akan dieksekusi hanya untuk bulan -bulan yang dipilih. Contoh skrip di bawah ini akan berjalan pada bulan Januari, Mei, dan bulan Agustus.
* * * Jan, Mei, Aug * /Script /Script.SH
- Jadwalkan cron untuk dieksekusi pada hari -hari yang dipilih.
Jika Anda mengharuskan penjadwalan tugas untuk dieksekusi hanya untuk hari -hari yang dipilih. Contoh di bawah ini akan berjalan pada setiap hari Minggu dan Jumat pukul 17:00.
0 17 * * Sun, Fri /Script /Script.SH
- Jadwalkan cron untuk dieksekusi pada hari Minggu pertama setiap bulan.
Untuk menjadwalkan skrip untuk menjalankan skrip pada hari Minggu pertama tidak dimungkinkan oleh parameter waktu, tetapi kita dapat menggunakan kondisi di bidang perintah untuk melakukannya.
0 2 * * Sun [$ (tanggal +%d) -le 07] && /skrip /skrip.SH
- Jadwalkan cron untuk mengeksekusi setiap empat jam.
Jika Anda ingin menjalankan skrip pada interval 4 jam. Itu dapat dikonfigurasi seperti di bawah ini.
0 */4 * * */skrip/skrip.SH
- Jadwalkan cron untuk dieksekusi dua kali setiap hari Minggu dan Senin.
Untuk menjadwalkan tugas untuk dieksekusi dua kali pada hari Minggu dan Senin. Gunakan pengaturan berikut untuk melakukannya.
0 4,17 * * matahari, mon /skrip /skrip.SH
- Jadwalkan cron untuk mengeksekusi setiap 30 detik.
Untuk menjadwalkan tugas untuk mengeksekusi setiap 30 detik tidak dimungkinkan dengan parameter waktu, tetapi dapat dilakukan dengan menjadwalkan cron yang sama dua kali di bawah ini.
* * * * * /skrip /skrip.sh * * * * * tidur 30; /skrip/skrip.SH
- Jadwalkan banyak tugas dalam satu cron tunggal.
Untuk mengonfigurasi beberapa tugas dengan cRon tunggal dapat dilakukan dengan memisahkan tugas dengan titik koma (;).
* * * * * /skrip /skrip.SH; /skrip/scrit2.SH
- Jadwal tugas untuk dieksekusi setiap tahun (@early).
@tahunan Timestamp mirip dengan โ0 0 1 1 *โ. Ini akan menjalankan tugas pada menit pertama setiap tahun, mungkin berguna untuk mengirim salam tahun baru ๐
@yearly /skrip /skrip.SH
- Jadwal tugas untuk mengeksekusi bulanan (@monthly).
@bulanan Timestamp mirip dengan โ0 0 1 * *โ. Itu akan menjalankan tugas di menit pertama bulan itu. Ini mungkin berguna untuk melakukan tugas bulanan seperti membayar tagihan dan faktur kepada pelanggan.
@Monthly /Scripts /Script.SH
- Jadwal tugas untuk mengeksekusi mingguan (@weekly).
A @mingguan Timestamp mirip dengan โ
0 0 * * Sun
โ. Ini akan menjalankan tugas di menit pertama minggu ini. Ini mungkin berguna untuk melakukan tugas mingguan seperti pembersihan sistem dll.@weekly /bin /skrip.SH
- Jadwal tugas untuk dieksekusi setiap hari (@Daily).
@sehari-hari Timestamp mirip dengan โ0 0 * * *โ. Ini akan menjalankan tugas di menit pertama setiap hari, mungkin berguna untuk melakukan tugas harian.
@Daily /Scripts /Script.SH
- Jadwal tugas untuk mengeksekusi setiap jam (@hourly).
@per jam Timestamp mirip dengan โ0 * * * *โ. Ini akan menjalankan tugas pada menit pertama setiap jam, mungkin berguna untuk melakukan tugas per jam.
@Hourly /skrip /skrip.SH
- Jadwalkan tugas untuk dieksekusi pada reboot sistem (@Reboot).
@menyalakan ulang berguna untuk tugas -tugas yang ingin Anda jalankan pada startup sistem Anda. Itu akan sama dengan skrip startup sistem. Ini berguna untuk memulai tugas di latar belakang secara otomatis.
@Reboot /skrip /skrip.SH
- Redirect Cron Hasil ke akun email yang ditentukan.
Secara default, Cron mengirimkan detail ke pengguna saat ini di mana cron dijadwalkan. Jika Anda ingin mengarahkan kembali ke akun Anda yang lain, dapat dilakukan dengan mengatur variabel email seperti di bawah ini
crontab -l
Mail = bob 0 2 * * * /skrip /cadangan.SH - Ambil cadangan semua cron ke file teks biasa.
Saya sarankan menyimpan cadangan semua entri pekerjaan dalam file. Ini akan membantu Anda memulihkan cron jika terjadi penghapusan yang tidak disengaja.
Periksa cron terjadwal saat ini:
crontab -l
Mail = Rahul 0 2 * * * /skrip /cadangan.SHCron cron ke file teks:
# crontab -l> cron -backup.txt # Cat Cron-Backup.txt mail = Rahul 0 2 * * * /skrip /cadangan.SH
Menghapus cron terjadwal saat ini:
# crontab -r # crontab -l no crontab untuk root
Kembalikan crons dari file teks:
# Crontab Cron-Backup.txt # crontab -l mail = Rahul 0 2 * * * /skrip /cadangan.SH
Kesimpulan
Terima kasih telah membaca artikel ini, saya harap ini akan membantu Anda memahami crontab di Linux. Untuk menjadwalkan tugas satu kali Anda juga dapat menggunakan Linux di Command.
- ยซ Cara menginstal qbittorrent 4.0 Di Ubuntu menggunakan PPA
- 20 Tip Berguna untuk Pemula PostgreSQL ยป