全部产品
Search
文档中心

Elastic Compute Service:Pekerjaan Cron

更新时间:Jun 26, 2025

Topik ini menjelaskan konsep dasar dan sintaksis cron serta menyediakan ekspresi cron umum beserta skenario penggunaannya. Topik ini membantu Anda memahami mekanisme kerja cron dan cara membuat, mengelola, serta men-debug pekerjaan cron.

Prinsip dasar dan komponen cron

Apa itu cron?

Cron adalah program yang digunakan untuk menjalankan pekerjaan pada jadwal tertentu di sistem operasi Linux dan Unix. Cron memungkinkan Anda menjalankan skrip, perintah, atau perangkat lunak secara otomatis sesuai jadwal. Cron cocok untuk tugas-tugas yang perlu dilakukan secara berkala, seperti pencadangan data dan pembaruan sistem.

Mekanisme kerja cron

Cron berjalan berdasarkan file crontab, yaitu file konfigurasi yang berisi serangkaian perintah dan jadwal eksekusi perintah tersebut. Setiap akun dapat memiliki file crontab mereka sendiri di direktori home mereka. File crontab tingkat sistem digunakan untuk pekerjaan yang dieksekusi pada tingkat administrator.

Daemon cron secara berkala memeriksa file crontab, menguraikan jadwal dan perintah yang didefinisikan dalam file, lalu menjalankan perintah sesuai jadwal.

Komponen cron

  1. Daemon Cron: Program latar belakang yang bertanggung jawab untuk secara teratur memeriksa, menjadwalkan, dan mengeksekusi pekerjaan yang ditentukan dalam file crontab.

  2. File Crontab:

    • File Crontab Tingkat Akun: Setiap akun dapat mengedit pekerjaan cron mereka sendiri di file crontab tingkat akun dengan menjalankan perintah crontab -e. Pekerjaan hanya valid untuk akun saat ini.

    • File Crontab Tingkat Sistem: Disimpan di direktori /etc/crontab. Dalam kebanyakan kasus, file crontab tingkat sistem dikelola oleh administrator sistem dan digunakan untuk mengeksekusi pekerjaan tingkat sistem.

  3. Sintaksis Crontab: Setiap baris dalam file crontab terdiri dari enam bidang yang mewakili menit, jam, hari dalam sebulan, bulan, hari dalam seminggu, dan perintah yang akan dijalankan.

Ekspresi Cron

Untuk membantu Anda lebih memahami cara kerja cron, kode sampel berikut memberikan contoh file crontab sederhana:

# .---------------- menit
# |  .------------- jam
# |  |  .---------- hari dalam sebulan 
# |  |  |  .------- bulan 
# |  |  |  |  .---- hari dalam seminggu (Minggu=0 atau 7)
# |  |  |  |  |
# *  *  *  *  * nama-pengguna  perintah yang akan dijalankan // Tentukan jalur perintah atau skrip yang dijalankan oleh pekerjaan cron.
  30 04 *  *  *   root     /path/to/daily_backup.sh

Dalam contoh ini, konfigurasi pekerjaan menunjukkan bahwa sistem menjalankan skrip daily_backup.sh sebagai pengguna root pada pukul 04:30 setiap hari.

Penting

Pastikan Anda menentukan jalur absolut untuk semua instruksi perintah atau file skrip.

Nilai valid dari bidang

Tabel berikut menjelaskan rentang valid dan karakter khusus yang didukung oleh bidang yang digunakan untuk mendefinisikan jadwal dalam ekspresi cron.

Bidang

Wajib

Rentang valid

Karakter khusus yang didukung

Menit

Ya

[0, 59]

*,-,/

Jam

Ya

[0, 23]

*,-,/

Hari-dalam-sebulan

Ya

[1, 31]

*,-,/,?,L,W

Bulan

Ya

[1, 12] atau [JAN, DEC]

*,-,/

Hari-dalam-seminggu

Ya

[0, 6], di mana 0 mewakili Minggu dan 6 mewakili Sabtu. 7 juga bisa mewakili Minggu.

*,-,/,?,L,#

Arti dan contoh karakter khusus

Karakter Khusus

Arti

Contoh

*

Mencakup semua nilai.

0 * * * * perintah menunjukkan bahwa perintah dijalankan setiap jam tepat pada jam tersebut.

-

Menentukan rentang.

0 1-3 * * * perintah menunjukkan bahwa perintah dijalankan setiap jam dari pukul 01:00 hingga 03:00 setiap hari.

/

Menentukan interval.

*/15 * * * * perintah menunjukkan bahwa perintah dijalankan setiap 15 menit.

?

Menentukan nilai arbitrer dan hanya dapat digunakan di bidang Hari-dalam-sebulan dan Hari-dalam-seminggu.

0 0 2 ? * * perintah menunjukkan bahwa perintah dijalankan pada hari kedua setiap bulan dan hari dalam seminggu tidak ditentukan.

L

Dapat digunakan di bidang Hari-dalam-sebulan atau Hari-dalam-seminggu untuk menentukan hari terakhir dalam sebulan atau minggu.

0 0 L * * perintah menunjukkan bahwa perintah dijalankan pada hari terakhir setiap bulan.

W

Dapat digunakan hanya di bidang Hari-dalam-sebulan untuk menentukan hari kerja yang paling dekat dengan tanggal tertentu.

0 0 15W * * perintah menunjukkan bahwa perintah dijalankan pada hari kerja yang paling dekat dengan hari ke-15 setiap bulan.

#

Dapat digunakan di bidang Hari-dalam-seminggu untuk menentukan hari dalam seminggu dan minggu dalam sebulan.

0 0 * * 3#2 perintah menunjukkan bahwa perintah dijalankan pada Rabu kedua setiap bulan.

Catatan

Jika Anda menentukan karakter L dalam ekspresi cron, jangan tentukan daftar atau rentang dalam ekspresi tersebut. Jika Anda menentukan karakter L dan daftar atau rentang dalam ekspresi cron, kesalahan penguraian atau konflik logis mungkin terjadi.

Ekspresi cron umum

Ekspresi Cron

Arti

Skenario

* * * * *

Jalankan pekerjaan cron setiap menit.

Uji dan periksa apakah konfigurasi cron diaktifkan dan dieksekusi sesuai harapan.

0 0 * * *

Jalankan pekerjaan cron pada pukul 00:00 setiap hari.

Reset atau cadangkan data server setiap hari untuk memastikan keamanan data.

0 2 * * *

Jalankan pekerjaan cron pada pukul 02:00 setiap hari.

0 1 * * *

Jalankan pekerjaan cron pada pukul 01:00 setiap hari.

0 6 * * *

Jalankan pekerjaan cron pada pukul 06:00 setiap hari.

Perbarui laporan data setiap pagi agar anggota tim dapat melihat informasi terbaru.

0 12 * * *

Jalankan pekerjaan cron pada pukul 12:00 setiap hari.

Sinkronkan data atau kirim email pengingat harian di perusahaan pada tengah hari.

0 18 * * 1-5

Jalankan pekerjaan cron pada pukul 18:00 dari Senin hingga Jumat setiap minggu.

Cadangkan data sebelum akhir setiap hari kerja untuk memastikan semua data hari itu tersimpan.

0 21 * * *

Jalankan pekerjaan cron pada pukul 21:00 setiap hari.

Bersihkan sistem bisnis atau cadangkan data transaksi hari itu setelah berakhirnya operasi komersial.

0 0 1 * *

Jalankan pekerjaan cron pada pukul 00:00 hari pertama setiap bulan.

Hasilkan laporan keuangan, penjualan, atau bisnis lainnya di awal setiap bulan.

0 0 1 1,7 *

Jalankan pekerjaan cron pada 1 Januari dan 1 Juli setiap tahun.

Jalankan pekerjaan penting, seperti pengarsipan data semesteran atau restrukturisasi organisasi.

15 14 1 * *

Jalankan pekerjaan cron pada pukul 14:15 hari pertama setiap bulan.

Monitor dan perbarui patch keamanan untuk sistem TI untuk memastikan keamanan sistem.

0 0 * * 0

Jalankan pekerjaan cron pada pukul 00:00 setiap Minggu.

Bersihkan dan optimalkan data selama akhir pekan untuk menyiapkan lingkungan bersih untuk minggu baru.

0 0 1 1 *

Jalankan pekerjaan cron pada 1 Januari setiap tahun.

Otomatiskan skrip startup tahunan penting di awal setiap tahun, seperti mereset sistem atau mengarsipkan data penting.

*/10 * * * *

Jalankan pekerjaan cron setiap 10 menit.

Terus pantau sistem atau layanan kritis untuk memastikan performa dan keandalan.

Untuk informasi lebih lanjut tentang cron, kunjungi https://crontab.guru/.

Perbandingan cron

Perbandingan cron di antara sistem operasi utama

Perbandingan fitur dasar cron

Fitur

Cron Linux atau Unix

Cron macOS

Cron BSD

Windows Task Scheduler

Interval eksekusi minimum

1 menit

1 menit

1 menit

1 menit

Jalur default file crontab

/etc/crontab

/usr/lib/cron/tabs/

/etc/crontab

N/A

Konfigurasi tingkat pengguna

Didukung

Didukung

Didukung

N/A

Perbandingan karakter khusus dalam ekspresi cron

Karakter khusus

Linux atau Unix cron

macOS cron

BSD cron

Windows Task Scheduler

* (semua nilai)

Didukung

Didukung

Didukung

Didukung

, (daftar nilai)

Didukung

Didukung

Didukung

Didukung

- (rentang)

Didukung

Didukung

Didukung

Didukung

/ (ukuran langkah)

Didukung

Didukung

Didukung

Didukung

L (terakhir)

Didukung oleh distribusi tertentu

Tidak didukung

Tidak didukung

N/A

W (hari kerja)

Didukung oleh distribusi tertentu

Tidak didukung

Tidak didukung

N/A

# (hari kerja ke-N)

Didukung oleh distribusi tertentu

Tidak didukung

Tidak didukung

N/A

? (tidak ditentukan)

Didukung oleh distribusi tertentu

Tidak didukung

Tidak didukung

N/A

Perbandingan fitur cron

Fitur

Linux atau Unix cron

macOS cron

BSD cron

Windows Task Scheduler

Variabel lingkungan

Dukungan terbatas

Dukungan terbatas

Dukungan terbatas

Didukung

Pemrosesan tugas yang terlewat

Tidak diproses secara otomatis

Tidak diproses secara otomatis

Tidak diproses secara otomatis

Kebijakan pemrosesan dapat dikonfigurasi

Log

syslog

syslog

syslog

Event Viewer

Penjadwalan tingkat detik

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

GUI

Tidak ada

Tidak ada

Tidak ada

Tersedia

Dependensi tugas

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

Pemicu jaringan

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

Integrasi manajemen daya

Tidak didukung

Tidak didukung

Tidak didukung

Didukung

Pertimbangan

  1. Linux, Unix, macOS, atau BSD:

    • Konfigurasikan izin file dengan benar untuk mencegah izin berlebihan atau tidak cukup.

    • Catat warisan variabel lingkungan.

    • Kami menyarankan Anda menggunakan jalur absolut.

  2. Windows Task Scheduler:

    • Menyediakan lebih banyak opsi pemicu.

    • Mendukung kontrol akses granular yang lebih baik.

    • Dapat diintegrasikan dengan peristiwa sistem.

  3. Kompatibilitas Lintas Platform:

    • Catat irisan minimum fitur antar platform saat menyusun pekerjaan cron lintas platform.

    • Kami menyarankan Anda menggunakan format waktu dasar dan tidak menggunakan karakter khusus.

    • Gunakan alat penjadwalan lintas platform, seperti Jenkins.

Perbandingan cron di antara framework utama

Perbandingan sintaksis dasar

Fitur

Spring Framework

Quartz

Linux cron

Jenkins

Kubernetes CronJob

Dukungan Tingkat Kedua

(Opsional) Didukung

Didukung

Tidak didukung

Didukung

Tidak didukung

Bidang Tahun

Opsional

Didukung

Tidak didukung

Didukung

Tidak didukung

Interval minimum

1 detik

1 detik

1 menit

1 detik

1 menit

Zona waktu

Didukung

Didukung

Zona waktu sistem

Didukung

Didukung

Perbandingan karakter khusus dalam ekspresi cron

Karakter khusus

Spring Framework

Quartz

Linux cron

Jenkins

Kubernetes CronJob

* (semua nilai)

Didukung

Didukung

Didukung

Didukung

Didukung

, (daftar nilai)

Didukung

Didukung

Didukung

Didukung

Didukung

- (rentang)

Didukung

Didukung

Didukung

Didukung

Didukung

/ (ukuran langkah)

Didukung

Didukung

Didukung

Didukung

Didukung

? (tidak ditentukan)

Didukung

Didukung

Tidak didukung

Didukung

Tidak didukung

L (terakhir)

Didukung

Didukung

Sebagian didukung

Didukung

Tidak didukung

W (hari kerja)

Didukung

Didukung

Sebagian didukung

Didukung

Tidak didukung

# (hari ke-N)

Didukung

Didukung

Tidak didukung

Didukung

Tidak didukung

Rekomendasi skenario

Framework

Skenario

Spring Framework

- Integrasi proyek Java

Skenario yang memerlukan transaksi

- Integrasi mendalam dengan ekosistem Spring

Quartz

- Sistem penjadwalan independen

- Skenario yang memerlukan kontrol tugas granular

- Persyaratan penjadwalan kompleks

Linux cron

- Tugas sistem sederhana

- Lingkungan mandiri

- Tugas penjadwalan dasar

Jenkins

- Skenario integrasi kontinu dan pengiriman/penerapan kontinu (CI/CD)

- Alur kerja kompleks

- Skenario yang memerlukan manajemen visual

Kubernetes CronJob

- Lingkungan berbasis kontainer

- Aplikasi cloud-native

- Skenario yang memerlukan ketersediaan tinggi dan skalabilitas

Pertimbangan

  1. Saran:

    • Pilih framework yang sesuai berdasarkan skala proyek.

    • Pertimbangkan biaya pemeliharaan dan keakraban tim.

    • Evaluasi persyaratan performa dan keandalan.

  2. Kompatibilitas:

    • Ekspresi cron dapat bervariasi berdasarkan framework.

    • Catat kompatibilitas ekspresi cron dengan framework saat Anda memigrasikan ekspresi tersebut ke framework.

    • Catat perbedaan dalam penanganan zona waktu.

  3. Pemantauan dan Pemeliharaan:

    • Bangun mekanisme pemantauan yang komprehensif.

    • Kumpulkan dan analisis log.

    • Buat kebijakan pemulihan kesalahan.

Studi kasus

Secara otomatis mencadangkan file teks di satu direktori ke direktori lain pada pukul 23:00 setiap malam untuk memastikan kontinuitas dan keamanan data.

Pertimbangan

  • Pastikan Anda menentukan direktori sumber dan tujuan dengan benar. Dalam contoh ini, /path/to/original/file.txt digunakan sebagai direktori sumber dan /path/to/backup/file_backup.txt digunakan sebagai direktori tujuan.

  • Periksa apakah direktori tujuan yang ditentukan ada. Jika direktori tujuan tidak ada, Anda harus terlebih dahulu membuat direktori atau menambahkan perintah untuk membuat direktori ke pekerjaan cron.

  • Pastikan akun Anda memiliki izin untuk membaca file sumber dan menulis data ke direktori tujuan.

  • Secara berkala periksa file cadangan dan log untuk memeriksa apakah pekerjaan cron berjalan sesuai harapan dan menghasilkan file cadangan yang valid.

Prosedur

  1. Buka terminal dan masukkan perintah crontab -e untuk mengedit pekerjaan cron di akun Anda.

  2. Tambahkan baris berikut ke file crontab akun Anda untuk menambahkan pekerjaan cron:

       0 23 * * * cp /path/to/original/file.txt /path/to/backup/file_backup.txt

    Deskripsi:

    • 0 23 * * * menentukan bahwa pekerjaan dijalankan pada pukul 23:00 setiap hari.

    • cp /path/to/original/file.txt /path/to/backup/file_backup.txt menentukan bahwa file file.txt disalin ke direktori tujuan.

  3. Simpan dan tutup file crontab.

    • Jika Anda menggunakan editor nano, tekan Ctrl+X dan Y untuk mengonfirmasi dan menyimpan perubahan, lalu tekan tombol Enter untuk menutup file.

    • Jika Anda menggunakan editor vi atau vim, masukkan :wq dan tekan tombol Enter untuk menyimpan dan menutup file.

FAQ

Bagaimana cara melihat log cron?

Dalam banyak kasus, eksekusi pekerjaan cron dicatat dalam log sistem. Anda dapat memeriksa apakah pekerjaan cron dipicu berdasarkan log cron. Untuk melihat log cron, jalankan perintah berikut:

grep CRON /var/log/syslog

Keluaran perintah menampilkan semua log terkait cron, termasuk catatan eksekusi pekerjaan.

Bagaimana cara menyelesaikan masalah timeout eksekusi pekerjaan cron?

  • Jika eksekusi pekerjaan cron mengalami timeout, gunakan solusi berikut untuk menyelesaikan masalah:

    • Optimalkan logika perintah untuk mengurangi waktu eksekusi.

    • Jika pekerjaan cron dapat dibagi, bagi pekerjaan menjadi beberapa pekerjaan yang lebih kecil.

    • Tambahkan perintah timeout ke Bidang Perintah untuk mengubah waktu eksekusi maksimum pekerjaan cron. Contohnya: tambahkan konfigurasi 0 5 * * * timeout 300 /path/to/script.sh untuk membatasi waktu eksekusi maksimum pekerjaan hingga 300 detik.

Bagaimana cara menggunakan perintah uji sederhana?

Sebelum Anda mengonfigurasi pekerjaan cron yang kompleks, gunakan perintah uji sederhana untuk memeriksa apakah pekerjaan cron dapat dipicu sesuai harapan. Sebagai contoh, jalankan perintah berikut untuk mengonfigurasi pekerjaan cron yang menulis waktu saat ini ke file setiap menit:

* * * * * date >> /path/to/date_output.txt

Buka file date_output.txt setelah beberapa menit dan periksa apakah catatan waktu baru ditulis ke file setiap menit.

Bagaimana cara mengarahkan keluaran dan kesalahan ke file log?

Tambahkan konfigurasi pengalihan ke ekspresi cron untuk mengarahkan keluaran dan kesalahan ke file log. Dengan cara ini, Anda dapat memeriksa apakah pekerjaan cron dieksekusi sesuai harapan dan melihat keluaran serta kesalahan yang terjadi selama eksekusi.

30 4 * * * /path/to/your-script.sh > /path/to/logfile.log 2>&1

Periksa file /path/to/logfile.log untuk melihat keluaran dan kesalahan pekerjaan cron selama eksekusi.

Bagaimana cara mengonfigurasi frekuensi pekerjaan cron?

  • Referensi saran berikut untuk mengonfigurasi frekuensi pekerjaan cron:

    • Untuk mencegah pekerjaan cron memengaruhi performa sistem, kami menyarankan Anda untuk tidak menentukan frekuensi yang terlalu tinggi untuk pekerjaan tersebut. Tentukan frekuensi yang sesuai untuk pekerjaan cron berdasarkan karakteristik pekerjaan.

    • Konfigurasikan frekuensi pekerjaan cron berdasarkan kebutuhan bisnis Anda. Pekerjaan harian sederhana, seperti pencadangan, mungkin hanya perlu dijalankan sekali sehari, sedangkan pekerjaan pemantauan tertentu mungkin perlu dijalankan setiap jam atau lebih sering.

    • Pertimbangkan beban sistem. Jalankan pekerjaan yang intensif sumber daya selama periode beban rendah.

Apa operasi yang dapat saya lakukan untuk memfasilitasi pemecahan masalah cron?

  • Arahkan keluaran dan kesalahan pekerjaan cron ke file log untuk memfasilitasi pelacakan masalah. Contoh: 30 4 * * * /path/to/job.sh > /path/to/job.log 2>&1.

  • Konfigurasikan daemon cron untuk mengirim notifikasi melalui email ketika pekerjaan cron mengalami pengecualian atau menghasilkan keluaran. Pastikan pengaturan email sistem dikonfigurasi dengan benar atau secara eksplisit konfigurasikan notifikasi email untuk pekerjaan cron.

  • Dalam banyak sistem Linux, jalur absolut lebih andal daripada jalur relatif. Kami menyarankan Anda menggunakan jalur absolut dalam pekerjaan cron.

  • Untuk mengedit pekerjaan cron, jalankan perintah crontab -e. Untuk melihat semua pekerjaan cron di akun Anda, jalankan perintah crontab -l. Anda dapat memeriksa apakah pekerjaan cron dikonfigurasi dengan benar.

Mengapa pekerjaan cron tidak dijalankan sesuai jadwal?

  • Penyebab dan solusi:

    • Jika terdapat kesalahan dalam ekspresi cron, periksa ekspresi cron dan perbaiki kesalahan. Pastikan pengaturan jadwal sudah benar.

    • Jika akun Anda tidak memiliki izin yang cukup untuk menjalankan pekerjaan cron, berikan akun Anda izin yang diperlukan untuk menjalankan pekerjaan cron dengan menjalankan perintah chmod +x /path/to/script.sh.

    • Jika terjadi masalah lingkungan, pekerjaan cron mungkin gagal memuat konfigurasi lingkungan lengkap akun Anda. Pastikan Anda menentukan jalur lengkap perintah dalam pekerjaan cron atau secara eksplisit mengonfigurasi variabel lingkungan dalam perintah.

    • Jika masalah lain terjadi, periksa log cron untuk mengidentifikasi masalah. Lokasi log cron bervariasi berdasarkan konfigurasi sistem. Dalam banyak kasus, log cron disimpan di direktori /var/log/cron. Jika Anda mengarahkan keluaran dan kesalahan pekerjaan cron ke file tertentu, lihat log di file tersebut untuk memeriksa apakah pekerjaan cron dipicu sesuai harapan dan apakah pesan kesalahan dikembalikan.

Bagaimana cara memastikan pekerjaan cron akan berlaku?

Periksa sintaksis ekspresi cron. Pastikan sintaksis waktu dan tanggal sudah benar. Jalankan perintah crontab -e untuk mengedit pekerjaan cron dan periksa apakah semua bidang dikonfigurasi dengan benar. Ekspresi cron mencakup bidang berikut:

<Menit> <Jam> <Hari-dalam-sebulan> <Bulan> <Hari-dalam-seminggu> <Perintah>

Pastikan setiap bidang sudah benar.

Dalam banyak sistem operasi Linux, layanan cron hanya dapat menjalankan pekerjaan jika layanan tersebut sedang berjalan. Anda dapat menjalankan perintah berikut untuk memeriksa status layanan cron:

sudo service cron status

Atau:

sudo systemctl status cron   

Jika layanan cron belum dimulai, jalankan perintah berikut untuk memulai layanan:

sudo service cron start

Atau:

sudo systemctl start cron

Berikan izin eksekusi pada file skrip yang Anda tentukan dalam pekerjaan cron. Jalankan perintah berikut:

chmod +x /path/to/your-script.sh

Bagaimana cara melihat semua pekerjaan cron di akun saya?

Jalankan perintah crontab -l untuk melihat semua pekerjaan cron di akun Anda. Ini adalah perintah umum di Linux dan Unix. Cron adalah penjadwal pekerjaan berbasis waktu yang memungkinkan Anda menjalankan skrip atau perintah secara otomatis sesuai jadwal.

  • Catat hal-hal berikut:

    • Perintah sebelumnya hanya menampilkan pekerjaan cron di akun saat ini. Untuk melihat pekerjaan cron di akun lain, Anda harus mendapatkan izin sistem yang diperlukan.

    • Jika tidak ada pekerjaan cron yang dikonfigurasi di akun Anda, perintah crontab -l mungkin tidak menampilkan informasi.

Bagaimana cara melihat pekerjaan cron yang dapat diakses oleh akun saya?

Untuk melihat pekerjaan cron yang dapat diakses oleh akun Anda, Anda dapat menjalankan perintah crontab -l. Jika akun Anda tidak memiliki izin root atau izin untuk melihat dan mengedit pekerjaan cron akun lain, perintah sebelumnya hanya menampilkan pekerjaan cron yang dimiliki oleh akun Anda. Jika akun Anda memiliki izin root atau izin untuk melihat dan mengedit pekerjaan cron akun lain, Anda dapat menjalankan perintah sebelumnya dan menentukan nama pengguna akun dalam perintah untuk melihat semua pekerjaan cron yang dimiliki oleh akun yang ditentukan.

  • Catat hal-hal berikut:

    • Anda dapat menggunakan akun reguler untuk melihat dan mengedit hanya pekerjaan cron yang dimiliki oleh akun tersebut.Anda dapat menggunakan akun root atau akun yang diberi izin cukup untuk melihat dan mengedit pekerjaan cron semua akun.

    • Perintah dalam pekerjaan cron yang didefinisikan dalam file crontab dijalankan dalam lingkungan yang disederhanakan. Secara default, sejumlah variabel lingkungan mungkin tidak dimuat. Kami menyarankan Anda menggunakan jalur lengkap dalam perintah.

Bagaimana cara mengedit file crontab untuk menghapus pekerjaan cron?

  1. Jalankan perintah crontab -e untuk membuka file crontab akun Anda di editor default. Editor default bisa berupa vi atau nano.

  2. Di editor, temukan baris yang berisi pekerjaan cron yang ingin Anda hapus, lalu hapus baris tersebut. Di editor vi atau vim, pindahkan kursor ke baris dan tekan dd untuk menghapus baris. Di editor nano, pindahkan kursor ke baris menggunakan tombol panah, lalu tekan tombol Hapus untuk menghapus baris atau tekan Ctrl+K untuk memotong baris.

  3. Simpan dan tutup file crontab.

    • Di editor vi atau vim, masukkan :wq dan tekan tombol Enter untuk menyimpan perubahan dan menutup file.

    • Di editor nano, tekan Ctrl+X, masukkan Y untuk mengonfirmasi dan menyimpan perubahan, lalu tekan tombol Enter untuk menutup file.

  4. Jika Anda ingin menghapus semua pekerjaan cron dari akun Anda, jalankan perintah berikut.

Peringatan

Perintah ini menghapus semua pekerjaan cron dari akun Anda tanpa meminta konfirmasi. Lanjutkan dengan hati-hati.

crontab -r
  • Catat hal-hal berikut:

    • Sebelum Anda mengedit atau menghapus pekerjaan cron, kami menyarankan Anda mencadangkan file crontab Anda. Anda dapat menjalankan perintah crontab -l > crontab_backup.txt untuk mencadangkan pekerjaan cron di file crontab Anda ke file lain.

    • Saat Anda menghapus atau mengedit pekerjaan cron di file crontab Anda, sistem operasi atau aplikasi dalam sistem operasi mungkin terpengaruh. Sebelum Anda menghapus atau mengedit pekerjaan cron, pastikan Anda sepenuhnya menyadari dampak potensial dari operasi tersebut.

Apa yang harus dilakukan jika pesan kesalahan "You (*) are not allowed to use this program (crontab)" muncul saat saya menjalankan perintah crontab sebagai pengguna non-root di Linux?

  1. Hubungkan ke instance ECS Linux sebagai pengguna root.

    Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk terhubung ke instance Linux melalui SSH.

  2. Jalankan perintah berikut untuk memeriksa apakah file cron.allow dan cron.deny ada:

    find /etc/cron.allow
    find /etc/cron.deny

    Tabel berikut menjelaskan hubungan antara keberadaan file cron.allow dan cron.deny dan izin pengguna untuk menjalankan perintah crontab.

    Apakah file cron.allow ada

    Apakah file cron.deny ada

    Pengguna yang dapat menjalankan perintah crontab

    Tidak

    Tidak

    Hanya pengguna root yang dapat menjalankan perintah crontab.

    Ya

    Tidak

    Hanya pengguna yang ditentukan dalam file cron.allow yang dapat menjalankan perintah crontab.

    Tidak

    Ya

    Pengguna yang tidak ditentukan dalam file cron.deny dapat menjalankan perintah crontab.

    Catatan

    Jika file cron.deny kosong, semua pengguna dapat menjalankan perintah crontab.

    Ya

    Ya

    Hanya pengguna yang ditentukan dalam file cron.allow yang dapat menjalankan perintah crontab.

    Catatan

    File cron.allow memiliki prioritas lebih tinggi daripada file cron.deny. Dalam hal ini, file cron.deny tidak berlaku.

  3. Modifikasi file cron.allow atau cron.deny berdasarkan skenario bisnis Anda:

    • Jika file cron.allow tidak ada dan file cron.deny berisi nama pengguna dari pengguna non-root, hapus nama pengguna tersebut, lalu simpan file cron.deny.

    • Jika file cron.allow ada, tambahkan pengguna non-root ke file cron.allow, lalu simpan file.

  4. Jalankan perintah berikut untuk memulai ulang layanan cron:

    systemctl restart crond.service
  5. Beralih ke pengguna non-root dan jalankan perintah crontab lagi.

Nilai apa yang dapat saya tentukan untuk bidang Hari-dalam-seminggu dalam ekspresi cron dan item apa yang harus saya perhatikan saat mengonfigurasi bidang Hari-dalam-seminggu dan Hari-dalam-sebulan?

  • Bidang Hari-dalam-seminggu adalah bidang kelima dalam ekspresi cron dan digunakan untuk menentukan hari-hari dalam seminggu di mana Anda ingin mengeksekusi pekerjaan cron.

    • Nilai valid dalam format numerik: 1 hingga 7, yang sesuai dengan Minggu hingga Sabtu dalam seminggu.

    • Nilai valid dalam format singkatan: SUN, MON, TUE, WED, THU, FRI, dan SAT.

  • Contoh:

    1. MON-FRI: menentukan setiap hari dari Senin hingga Jumat.

    2. MON,WED,FRI: menentukan setiap Senin, Rabu, dan Jumat.

    3. MON-WED,SAT: menentukan hari dari Senin hingga Rabu dan Sabtu.

    4. 2-6: menentukan hari dalam seminggu dari Senin hingga Jumat. Dalam contoh ini, bidang Hari-dalam-seminggu dalam format numerik.

    5. SUN,SAT: menentukan setiap akhir pekan, yang mencakup Sabtu dan Minggu.

  • Sintaksis lanjutan:

    1. SUN#1: menentukan Minggu pertama setiap bulan.

    2. 6L: menentukan Jumat terakhir setiap bulan.

    3. */2: menentukan setiap hari lainnya.

    4. MON#2: menentukan Senin kedua setiap bulan.

  • Saat Anda mengonfigurasi bidang Hari-dalam-seminggu dan Hari-dalam-sebulan, perhatikan hal-hal berikut:

    1. Singkatan hari dalam seminggu tidak peka huruf besar/kecil. Misalnya, MON setara dengan mon.

    2. Untuk mencegah hari dalam seminggu bertentangan dengan hari dalam sebulan, gunakan ? di bidang Hari-dalam-seminggu atau Hari-dalam-sebulan.

    3. Saat Anda menggunakan karakter L dan # dalam ekspresi cron, pastikan ekspresi tersebut cocok dengan tanggal valid.

    4. Jika Anda menggunakan format numerik untuk bidang Hari-dalam-seminggu, perhatikan bahwa 1 mewakili Minggu bukan Senin.

Bagaimana cara menggunakan karakter L di bidang Hari-dalam-sebulan dan Hari-dalam-seminggu dalam ekspresi cron?

Di bidang Hari-dalam-sebulan
  • Jika Anda hanya menggunakan karakter L, perhatikan hal-hal berikut:

    • Karakter L menentukan hari terakhir dalam sebulan.

    • Contoh: 0 0 L * ? menentukan tengah malam pada hari terakhir setiap bulan.

    • Karakter L secara otomatis menyesuaikan dengan jumlah hari di bulan yang berbeda, termasuk Februari di tahun kabisat.

  • Jika Anda menggunakan karakter L bersama dengan nilai offset, perhatikan hal-hal berikut:

    • Nilai L-n menentukan hari yang satu hari sebelum N hari dari akhir bulan.

    • Contoh: 0 0 L-2 * ? menentukan tengah malam pada hari ketiga dari akhir setiap bulan.

Di bidang Hari-dalam-seminggu
  • Jika Anda hanya menggunakan karakter L, perhatikan hal-hal berikut:

    • Karakter L menentukan Sabtu, yang merupakan hari terakhir dalam seminggu.

    • Contoh: 0 0 ? * L menentukan tengah malam setiap Sabtu.

  • Jika Anda menggunakan karakter L bersama dengan angka, perhatikan hal-hal berikut:

    • Nilai nL menentukan hari N terakhir dalam sebulan, di mana N mewakili hari dalam seminggu.

    • Contoh: 6L menentukan Jumat terakhir dalam sebulan.

    • Contoh: 2L menentukan Senin terakhir dalam sebulan.

  • Jika Anda menggunakan karakter L bersama dengan singkatan Hari-dalam-seminggu, perhatikan hal-hal berikut:

    • Nilai XXXL menentukan hari spesifik terakhir dalam seminggu pada bulan tersebut.

    • Contoh: FRIL menentukan Jumat terakhir dalam sebulan.

    • Contoh: MONL menentukan Senin terakhir dalam sebulan.

Pertimbangan
  1. Jangan gunakan kombinasi berikut:

    • Karakter L dan rentang atau daftar

    • Contoh kesalahan: L,15 dan L-3,15

  2. Penyesuaian Hari-dalam-sebulan:

    • Karakter L secara otomatis menyesuaikan dengan jumlah hari di bulan yang berbeda.

    • Bidang Hari-dalam-sebulan dapat menangani kasus Februari di tahun kabisat dengan benar.

  3. Perhatikan hal-hal berikut saat menggunakan bidang Hari-dalam-seminggu:

    • Jika Anda menggunakan karakter L di bidang Hari-dalam-seminggu, kami menyarankan Anda mengatur bidang Hari-dalam-sebulan ke ?.

    • Ini mencegah konflik tanggal.

  4. Waktu eksekusi:

    • Jika hari terakhir dalam seminggu yang Anda tentukan untuk pekerjaan cron tidak ada, pekerjaan tidak akan dieksekusi.

    • Sebagai contoh, Februari mungkin tidak memiliki Jumat kelima.

Apa yang harus dilakukan jika pesan kesalahan "errors in crontab file, can't install" muncul saat saya menjalankan perintah crontab -e di instance Linux?

Untuk menyelesaikan masalah ini, Anda dapat masuk ke instance dan mengubah format ekspresi cron di file crontab atau memperbesar disk tempat file disimpan.

  1. Hubungkan ke instance ECS Linux.

    Untuk informasi lebih lanjut, lihat Metode untuk menghubungkan ke Instance ECS.

  2. Periksa apakah format setiap ekspresi cron dari pekerjaan di file crontab sudah benar.

    • Jika format setiap ekspresi cron dari pekerjaan sudah benar, lanjutkan ke Langkah 3.

    • Jika format pekerjaan cron salah, perbaiki format ekspresi cron dari pekerjaan tersebut. Gambar berikut menunjukkan format yang benar dari ekspresi cron pekerjaan.

      image.png

  3. Jalankan perintah berikut untuk memeriksa penggunaan ruang disk:

    df -h

    Keluaran perintah serupa dengan yang berikut. Nilai di kolom Use% menunjukkan penggunaan ruang setiap sistem file. Dalam contoh ini, penggunaan ruang partisi /dev/xvda1 adalah 15%.

    Jika penggunaan disk mendekati 100%, ruang disk tidak mencukupi. Kami menyarankan Anda untuk mengubah ukuran disk sebelum menjalankan perintah crontab -e. Untuk informasi tentang cara mengubah ukuran disk, lihat Overview.

    image