Cron adalah utilitas yang mengelola proses latar belakang atau daemon dari waktu ke waktu (misalnya setiap menit, hari, minggu, atau bulan). Cron bekerja seperti penjadwal, misalnya, dapat mengunduh file dari internet atau mengunduh email secara berkala, Anda juga dapat menggunakannya untuk tugas yang lebih kompleks seperti menginstal pembaruan. Awalnya cron dibuat untuk UNIX oleh Ken Thompson, tetapi sekarang Anda dapat menggunakannya di semua sistem mirip UNIX, bahkan Linux! UNIX memiliki utilitas lain untuk penjadwalan tugas yang disebut "at" tetapi cron jauh lebih baik. Ada dua cara untuk menggunakan cron, yang pertama adalah melalui direktori cron yang terletak di /etc jika Anda membuka terminal dan ketik perintah berikut:$ls /etc/cron* Anda akan mendapatkan output sebagai berikut:

Sekarang, Anda dapat melihat direktori berikut pada gambar:cron. setiap hari, cron. hourly, cron.monthly, cron.weekly dan cron.yearly. Direktori ini menyimpan script-script yang harus dijalankan oleh cron, sesuai dengan nama masing-masing direktori adalah frekuensi eksekusinya. Misalnya, skrip yang disimpan di cron.hourly akan dieksekusi setiap jam.
Sekarang, saya akan menulis skrip sederhana untuk membuat cadangan direktori, dan saya akan meletakkannya di cron. direktori per jam untuk mengeksekusi skrip setiap jam. Satu hal penting yang harus Anda pertimbangkan, adalah memberikan izin eksekusi ke skrip, karena jika tidak, cron tidak akan mengeksekusi file.
Contoh proses untuk menambahkan skrip ke tugas cron menggunakan direktori cron global:
Saya memiliki direktori dan saya ingin membuat dan mencadangkan secara otomatis setiap jam:

Saya menulis skrip untuk membuat cadangan, saya menggunakan nano tetapi Anda dapat menggunakan editor favorit Anda:

Saya menguji skrip:

Saya menyalin skrip ke /etc/cron.hourly:

Saya memberikan izin eksekusi ke skrip:

Semua skrip harus dimulai dengan baris #!/bin/sh karena ini menunjukkan shell yang akan digunakan. Menggunakan cron melalui direktori /etc/cron.* tidak terlalu berguna, jadi saya akan menjelaskan cara kedua menggunakan crontab.
Jika Anda ingat output ketika saya mendaftarkan konten /etc/cron* Anda akan melihat file berikut:/etc/crontab
Anda dapat menjadwalkan tugas di file crontab, tetapi pertama-tama, Anda harus mempelajari hal berikut:

Jika Anda menganalisis konten file crontab, Anda dapat mengidentifikasi 7 bidang di baris setelah "# run-parts", maksud saya berikut ini ( baris pertama setelah "# run parts"):
Field1 | Bidang2 | Field3 | Bidang4 | Bidang5 | Bidang6 | Field7 |
01 | * | * | * | * | akar | bagus … |
Lima bidang pertama menunjukkan nilai waktu, bidang keenam menunjukkan pengguna dan bidang ketujuh menunjukkan perintah untuk dieksekusi, yang terakhir ini dapat berupa skrip atau perintah (uname, ls, apt-get, dll). Bidang waktu adalah sebagai berikut:
menit | jam | hari dalam sebulan | bulan | hari dalam seminggu |
01 | * | * | * | * |
Nilai yang diterima untuk setiap bidang adalah:
menit | 00 – 59 |
jam | 00 – 23 |
hari dalam sebulan | 1 – 31 |
bulan | 1 – 12 |
hari dalam seminggu | 1 – 7 (Senin:1, Minggu:7) |
Jika nilai salah satu bidang ini adalah “*”, itu berarti semua kemungkinan nilai untuk bidang koresponden, misalnya, * * * * * root /root/script.shTugas ini akan dijalankan oleh root setiap menit, setiap hari dan semua bulan.
Crontab menggunakan string yang terlalu khusus untuk menentukan rentang frekuensi:
@reboot | Satu kali setelah boot |
@tahunan | Setahun sekali |
@setiap tahun | Sama seperti @tahunan |
@bulanan | Sebulan sekali |
@mingguan | Seminggu sekali |
@daily | Harian |
@tengah malam | Sama seperti @harian |
@setiap jam | Setiap Jam |
Anda cukup mengubah bidang waktu untuk salah satu string khusus dan kemudian menyelesaikan sisanya, misalnya, @annually root dist-upgrade. Tugas ini harus dijalankan setiap tahun secara otomatis.
Sekarang Anda dapat menambahkan tugas ke crontab, Anda juga dapat membuat direktori .scripts di /home Anda dan menyimpan skrip Anda di dalamnya, akhirnya, Anda dapat menambahkan entri untuk setiap skrip di file crontab.
Crontab dapat mengelola file tugas untuk setiap pengguna, Anda dapat menguji apakah pengguna Anda memiliki tugas crontab menggunakan perintah berikut:

Anda dapat menjadwalkan tugas dalam file, cukup buat:

Setelah Anda membuat file crontab, Anda harus memuatnya ke cron dengan mengetikkan perintah:
$ crontab your_crontab
Cron sangat powerful karena setelah itu Anda memuat crontab baru, Anda tidak perlu melakukan apa-apa, itu saja, cron memuat tugas baru dan file crontab secara otomatis. Hasil dari crontab saya adalah skrip yang membuat file dengan tanggal yang dihasilkan setiap menit:

Skrip

File yang dihasilkanOpsi lain untuk crontab adalah sebagai berikut:

Cron adalah penjadwal tugas paling kuat yang saya tahu dan sangat baik karena tidak hanya untuk Linux, ini untuk semua sistem mirip UNIX. Jika Anda mengelola server, mungkin Anda akan menyukai cron, bahkan jika Anda adalah pengguna biasa, Anda akan menyukai cron, dengan cron Anda dapat menjadwalkan semuanya. Jika Anda ingin tahu lebih banyak tentang cron, Anda harus melihat halaman manual:
$ man cron $ man crontab
