Artikel ini akan menjelaskan tugas penjadwalan dan menjalankan skrip secara berkala menggunakan pekerjaan cron.
Apa itu Cron??
Cron adalah program penjadwalan tugas yang berjalan di latar belakang sebagai proses. Ini dapat digunakan untuk menjalankan pekerjaan tertentu secara berkala yang dijadwalkan menggunakan seperangkat aturan yang telah ditentukan sebelumnya. Cron sudah diinstal sebelumnya di sebagian besar distribusi Linux atau tersedia di repositori untuk diinstal secara manual.
Preset Cron
Cron di Ubuntu hadir dengan satu set penjadwal yang telah ditentukan sebelumnya. Anda dapat memeriksanya dengan menjalankan perintah di bawah ini:
$ls /etc/cron.*Biasanya folder ini adalah “/etc/cron.setiap jam”, “/etc/cron.harian”, “/etc/cron.bulanan" dan "/etc/cron.mingguan".
Cukup letakkan skrip yang Anda inginkan di salah satu folder ini untuk menjalankan tugas otomatis setiap jam, harian, bulanan, atau mingguan.
Perhatikan bahwa cron menggunakan shell “/bin/sh” secara default. Jika Anda ingin menggunakan "/bin/bash" sebagai shell dalam skrip cron, Anda harus menggunakan "!# /bin/bash” hashbang di bagian atas file skrip atau definisikan shell sebagai variabel “SHELL=/bin/bash” di baris pertama dalam skrip bash terjadwal. Mengganti variabel lingkungan "SHELL" juga berfungsi untuk editor crontab yang dijelaskan di bawah ini.
Tidak semua variabel lingkungan sistem dapat diekspos ke pekerjaan cron. Jadi biasanya ide yang baik untuk secara manual mendefinisikan variabel lingkungan penting dalam skrip yang dijadwalkan oleh cron.
crontab
Crontab memungkinkan Anda untuk menentukan tugas terjadwal Anda sendiri. Anda dapat menggunakannya untuk mengonfigurasi jadwal cron yang berbeda dari empat preset cron standar yang dijelaskan di atas.
Untuk mengatur tugas terjadwal di crontab, luncurkan editor crontab terlebih dahulu menggunakan perintah di bawah ini:
$ crontab -eSekarang di akhir file, Anda dapat menambahkan entri dalam format berikut:
menit jam hari bulan hari kerja /penuh/jalur/ke/skrip.SHDimana:
- menit: nilai apa pun dalam kisaran 0 hingga 59
- jam: nilai apa pun dalam kisaran 0 hingga 23, 0 menjadi tengah malam
- hari: nilai apa pun dalam kisaran 1 hingga 31
- bulan: nilai apa pun dalam kisaran 1 hingga 12
- hari kerja: nilai apa pun dalam kisaran 0 hingga 6, 0 adalah hari Minggu
Entri crontab di bawah ini akan mengambil tangkapan layar desktop Anda dan menyimpannya di direktori home Anda sekali pada jam 15:13 pada tanggal 2 Maret ditambah setiap hari Selasa pada bulan Maret pada jam 15:13.
13 15 2 3 2 skrotumUntuk membuat daftar semua entri crontab, gunakan perintah di bawah ini:
$ crontab -lLebih Banyak Contoh
Tugas Cron dapat dijelaskan dengan baik melalui contoh, jadi di bawah ini adalah beberapa contoh yang secara berkala akan mengambil tangkapan layar desktop Anda dan menyimpannya di folder rumah.
Selain lima variabel penjadwalan, cron juga menggunakan beberapa string khusus untuk menjadwalkan pekerjaan. String ini adalah:
- @hourly: pekerjaan dijalankan setiap jam
- @daily / @midnight: pekerjaan dijalankan setiap hari
- @weekly: pekerjaan berjalan seminggu sekali
- @monthly: pekerjaan berjalan sebulan sekali
- @yearly / @anually: pekerjaan berjalan setahun sekali
- @reboot: pekerjaan berjalan sekali setiap reboot/login
Entri crontab di bawah ini akan mengambil tangkapan layar sekali pada setiap reboot:
@reboot skrotAnda dapat mengganti "@reboot" dengan string khusus lainnya yang disebutkan di atas.
Menggunakan tanda bintang atau wildcard sebagai pengganti salah satu dari lima variabel akan mengulangi pekerjaan pada semua instance baru dari variabel itu. Entri di bawah ini akan mengambil tangkapan layar setiap menit:
* * * * * skrotumSetiap jam:
0 * * * * skrotumSetiap hari pada jam 18:00:
0 18 * * * skrotumSetiap bulan pada tanggal 6 pada jam 18:00:
0 18 6 * * skrotumGunakan "/" untuk menjalankan skrip pada interval periodik tetap 30 menit (berjalan setiap 30 menit):
*/30 * * * * skrotumAnda dapat menggunakan variabel yang dipisahkan koma untuk menentukan eksekusi skrip yang berulang secara berkala. Contoh di bawah ini akan mengambil tangkapan layar desktop Anda pada setiap menit ke-1, ke-4, dan ke-5 dari jam baru.
1,4,5 * * * * skrotumMemverifikasi Entri Crontab
Mendefinisikan entri crontab bisa jadi rumit tetapi men-debug mereka atau memverifikasi apakah mereka bekerja pada stempel waktu yang benar bahkan lebih rumit. Salah satu opsi adalah menggunakan mesin virtual dan mencatat cap waktu skrip yang berjalan secara berkala pada pekerjaan cron dengan memasukkan sesuatu seperti perintah "tanggal" dan mengarahkan output ke file teks. Namun, solusi yang lebih baik adalah dengan menggunakan salah satu dari banyak layanan pengujian pekerjaan cron online yang tersedia di web. Saya sarankan menyediakan situs web penguji cron c sini mencoba.
Kesimpulan
Menjalankan tugas cron adalah cara terbaik untuk mengotomatiskan tugas yang berulang, terutama di server. Alat ini sangat kuat dan dapat disesuaikan. Namun, penting untuk memastikan bahwa definisi penjadwal Anda berfungsi dengan benar, terutama jika ada tugas kritis misi.