DEV Community

Delisa Arfia Kirani
Delisa Arfia Kirani

Posted on

Scheduling Recurring User Jobs

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

Image description
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
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

  • 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
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

  • 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

Top comments (0)