Automated Tasks
Di Linux, tugas dapat dikonfigurasi untuk menjalankan secara otomatis dalam jangka waktu tertentu, pada tanggal yang ditentukan, atau ketika beban sistem rata-rata di bawah jumlah tertentu. Red Hat Enterprise Linux adalah pra-dikonfigurasi untuk menjalankan tugas-tugas sistem yang penting untuk menjaga sistem diperbarui. Misalnya, database slocate digunakan oleh perintah locate diperbarui setiap hari. Seorang administrator sistem dapat menggunakan tugas otomatis untuk melakukan backup periodik, memonitor sistem, menjalankan script kustom, dan banyak lagi.
Cron
Cron adalah daemon yang dapat digunakan untuk menjadwalkan pelaksanaan tugas berulang sesuai dengan kombinasi waktu, hari bulan, bulan, hari dalam seminggu, dan minggu.Cron mengasumsikan bahwa sistem ini terus menerus. Jika sistem ini tidak pada saat tugas dijadwalkan, itu tidak dijalankan.To schedule one-time tasks
Untuk menggunakan layanan cron, paket RPM vixie-cron harus diinstal dan layanan crond harus menjalankan. Untuk menentukan apakah paket tersebut terinstal, gunakan rpm -q vixie-cron perintah. Untuk menentukan apakah layanan ini berjalan, menggunakan status crond perintah / sbin / service.
Configuring Cron Tasks
File konfigurasi utama untuk cron, / etc / crontab, berisi baris berikut:SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Empat baris pertama adalah variabel yang digunakan untuk mengkonfigurasi lingkungan di mana tugas-tugas cron dijalankan. Variabel SHELL memberitahu sistem yang lingkungan shell untuk digunakan (dalam contoh ini shell bash), sedangkan variabel PATH mendefinisikan jalur yang digunakan untuk menjalankan perintah. Output dari tugas cron diemail ke username didefinisikan dengan variabel MAILTO. Jika variabel MAILTO didefinisikan sebagai string kosong (MAILTO = ""), email tidak dikirim. Variabel RUMAH dapat digunakan untuk mengatur direktori home untuk menggunakan ketika menjalankan perintah atau skrip.
Setiap baris di / etc / crontab merupakan tugas dan memiliki format berikut:
minute hour day month dayofweek command
- minute — any integer from 0 to 59
- hour — any integer from 0 to 23
- day — any integer from 1 to 31 (must be a valid day if a month is specified)
- month — any integer from 1 to 12 (or the short name of the month such as jan or feb)
- dayofweek — any integer from 0 to 7, where 0 or 7 represents Sunday (or the short name of the week such as sun or mon)
- command — the command to execute (the command can either be a command such as ls /proc >> /tmp/proc or the command to execute a custom script)
Untuk salah satu nilai di atas, tanda bintang (*) dapat digunakan untuk menentukan semua nilai yang valid. Sebagai contoh, tanda bintang untuk nilai bulan berarti menjalankan perintah setiap bulan dalam batasan nilai-nilai lainnya.
Sebuah tanda hubung (-) antara bilangan bulat menentukan berbagai bilangan bulat. Misalnya, 1-4 berarti bilangan bulat 1, 2, 3, dan 4.
Sebuah daftar nilai dipisahkan oleh koma (,) menetapkan daftar. Misalnya, 3, 4, 6, 8 menunjukkan empat bilangan bulat tertentu.
Garis miring (/) dapat digunakan untuk menentukan nilai langkah. Nilai integer dapat dilewati dalam jangkauan dengan mengikuti berbagai dengan / <bilangan bulat>. Misalnya, 0-59 / 2 dapat digunakan untuk mendefinisikan setiap menit di bidang menit. nilai langkah juga dapat digunakan dengan tanda bintang. Misalnya, nilai * / 3 dapat digunakan dalam bidang bulan untuk menjalankan tugas setiap bulan ketiga.
Setiap baris yang dimulai dengan tanda pagar (#) adalah komentar dan tidak diproses.
Seperti ditunjukkan dalam file / etc / crontab, script run-bagian mengeksekusi skrip di /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, dan / etc / cron. bulanan / direktori pada setiap jam, harian, mingguan, atau bulanan masing-masing. File dalam direktori ini harus skrip shell.
Jika tugas cron diperlukan untuk dieksekusi pada jadwal selain per jam, harian, mingguan, atau bulanan, dapat ditambahkan ke direktori /etc/cron.d/. Semua file dalam direktori ini menggunakan sintaks yang sama seperti / etc / crontab
"Contoh Crontab" untuk contoh:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/backup.sh
Pengguna selain root dapat mengkonfigurasi tugas cron dengan menggunakan utilitas crontab. Semua crontab user-defined disimpan di / var / spool / cron / direktori dan dieksekusi menggunakan username pengguna yang menciptakan mereka. Untuk membuat crontab sebagai pengguna, login sebagai user yang dan ketik -e perintah crontab untuk mengedit crontab pengguna menggunakan editor ditentukan oleh variabel lingkungan VISUAL atau EDITOR. file menggunakan format yang sama seperti / etc / crontab. Ketika perubahan crontab disimpan, crontab disimpan sesuai dengan username dan ditulis ke file / var / spool / cron / username.
Cron daemon memeriksa file / etc / crontab, direktori /etc/cron.d/, dan / var / spool / cron / direktori setiap menit untuk setiap perubahan. Jika ada perubahan yang ditemukan, mereka dimuat ke dalam memori. Dengan demikian, daemon tidak perlu di-restart jika file crontab berubah.
Mengontrol Akses ke Cron
The /etc/cron.allow dan /etc/cron.deny file yang digunakan untuk membatasi akses ke cron. Format kedua file kontrol akses adalah salah satu nama pengguna pada setiap baris. Spasi tidak diperbolehkan dalam baik file. Cron daemon (crond) tidak harus direstart jika file kontrol akses yang dimodifikasi. File kontrol akses yang dibaca setiap kali pengguna mencoba untuk menambah atau menghapus tugas cron.
Root pengguna dapat selalu menggunakan cron, terlepas dari nama pengguna terdaftar dalam file akses kontrol.
Jika file cron.allow ada, hanya pengguna terdaftar di dalamnya diperbolehkan untuk menggunakan cron, dan file cron.deny diabaikan.
Jika cron.allow tidak ada, pengguna terdaftar di cron.deny tidak diizinkan untuk menggunakan cron
Starting and Stopping the Service
Untuk memulai layanan cron, gunakan perintah / sbin / service crond mulai. Untuk menghentikan layanan, gunakan perintah / sbin / service crond stop. Dianjurkan agar Anda memulai layanan pada saat boot.