Scheduling Recurring User Jobs
Tags: redhat, ramadhanbersamaredhat, rh134
Published: 2024-04-01 03:03:03

**Menjadwalkan Pekerjaan Pengguna Berulang**
Pengguna normal dapat menggunakan perintah **crontab** untuk mengelola pekerjaan mereka. Perintah ini dapat dipanggil dengan empat cara berbeda:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4uo4xmxhkwy9ahjvew9.png)
**Catatan**
Pengguna super dapat menggunakan -uopsi dengan perintah crontab untuk mengelola pekerjaan bagi pengguna lain. Anda tidak boleh menggunakan perintah **crontab** untuk mengelola pekerjaan sistem; sebagai gantinya, gunakan metode yang dijelaskan di bagian selanjutnya.

**Menjelaskan Format Pekerjaan Pengguna**
Perintah **crontab -e** memanggil Vim secara default, kecuali _EDITORvariabel lingkungan telah disetel ke sesuatu yang berbeda. Masukkan satu pekerjaan per baris. Entri valid lainnya meliputi: baris kosong, biasanya untuk kemudahan membaca; komentar, ditandai dengan garis yang diawali dengan tanda angka (#); dan variabel lingkungan menggunakan format NAME=value_, yang mempengaruhi semua baris di bawah baris di mana mereka dideklarasikan. Pengaturan variabel yang umum mencakup SHELLvariabel, yang mendeklarasikan shell mana yang akan digunakan untuk menafsirkan baris sisa file crontab; dan MAILTOvariabelnya, yang menentukan siapa yang harus menerima keluaran yang dikirim melalui email.

**Penting**
Mengirim email mungkin memerlukan konfigurasi tambahan server email lokal atau relai SMTP pada sistem.

Bidang dalam _crontab_ file muncul dalam urutan berikut:
- Menit
- jam
- Hari dalam sebulan
- Bulan
- Hari dalam seminggu 
- Memerintah 

**Penting**
Jika kolom _Day of_ monthdan _Day of week_ keduanya selain *, perintah dijalankan jika salah satu dari kedua kolom ini terpenuhi. Misalnya, untuk menjalankan perintah pada tanggal 15 setiap bulan, dan setiap hari Jumat pukul _12:15_, gunakan format tugas berikut:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nh6dv1eo5wemk8ne87hs.png)
Lima bidang pertama semuanya menggunakan aturan sintaksis yang sama:
- *for "Do not Care"/always.
- Angka untuk menentukan jumlah menit atau jam, tanggal, atau hari kerja. Untuk hari kerja 0sama dengan Minggu , 1sama dengan Senin, 2sama dengan Selasa, dan seterusnya. 7juga sama dengan hari Minggu.
- _x-y_ untuk rentang tertentu, xhingga yinklusif.
- _x,y_ untuk daftar. Daftar juga dapat menyertakan rentang, misalnya, _5,10-13,17_di _Minutes_kolom untuk menunjukkan bahwa pekerjaan harus dijalankan pada jam 5, 10, 11, 12, 13, dan 17 menit setelah satu jam.
- *_/x_ untuk menunjukkan interval _x_, misalnya, *_/7_ pada _Minutes_kolom menjalankan pekerjaan setiap tujuh menit.
Selain itu, singkatan bahasa Inggris 3 huruf dapat digunakan untuk bulan dan hari kerja, misalnya Jan, Feb, dan Mon, Tue.

Bidang terakhir berisi perintah untuk mengeksekusi menggunakan shell default. Variabel lingkungan **SHELL** dapat digunakan untuk mengubah shell untuk perintah terjadwal. Jika perintah berisi tanda persentase yang tidak dapat dihilangkan (%), maka tanda persentase tersebut diperlakukan sebagai karakter baris baru, dan segala sesuatu setelah tanda persentase diteruskan ke perintah di _stdin_.

**Contoh Pekerjaan Pengguna Berulang**

- Pekerjaan berikut menjalankan perintah **/usr/local/bin/yearly_backup** tepat jam 9 pagi pada tanggal 2 Februari, setiap tahun.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20zqffgzgi2xrmx1xg8r.png)

- Pekerjaan berikut mengirimkan email berisi kata-kata tersebut Chimekepada pemilik pekerjaan ini, setiap lima menit antara jam 9 pagi dan 5 sore, pada setiap hari Jumat di bulan Juli.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55n3fh35ma9d88zk9g2u.png)
Rentang jam sebelumnya _9-16_berarti pengatur waktu pekerjaan dimulai pada jam kesembilan (09:00) dan berlanjut hingga akhir jam keenam belas (16:59). Pekerjaan mulai dijalankan pada _09:00_dengan eksekusi terakhir pada 16:55karena lima menit dari _16:55_waktu _17:00_tersebut berada di luar cakupan jam yang ditentukan.

- Pekerjaan berikut menjalankan perintah **/usr/local/bin/daily_report** setiap hari kerja pada dua menit sebelum tengah malam.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gqajctloo3p7lhmfz969.png)

- Pekerjaan berikut menjalankan perintah **mutt** untuk mengirim pesan email _Checking in_ke penerima _boss@example.com_ pada setiap hari kerja (Senin sampai Jumat), pada jam 9 pagi

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mn2ly3rbc5j95ldic0u.png)