GNU/Linux >> Belajar Linux >  >> Linux

Memecahkan Masalah Pekerjaan Cron

Cron adalah layanan untuk server Linux yang secara otomatis menjalankan perintah terjadwal. Pekerjaan cron dapat berupa serangkaian perintah shell, skrip, atau program lain. Tugas atau pekerjaan Cron dapat melakukan berbagai fungsi dan setelah dijalankan dapat mengirimkan pesan email untuk memberi tahu Anda tentang penyelesaian atau kesalahannya. Jika Anda menerima kesalahan, ada banyak cara untuk memecahkan masalah tugas cron. Gunakan artikel ini untuk bantuan pemecahan masalah atau tutorial tentang dasar-dasar pekerjaan cron. Jika Anda ingin mempelajari lebih lanjut tentang membuat pekerjaan cron, lihat tutorial Basis Pengetahuan kami tentang subjek ini.

Memeriksa Konfigurasi dengan Crontab

Dari baris perintah, Anda dapat meninjau tugas cron terjadwal dengan membuat daftar crontab untuk pengguna. Perintah ini mengeluarkan konten crontab pengguna ke terminal.

Sebagai pengguna, Anda dapat menjalankan:
crontab -l

Sebagai root, Anda dapat melihat crontab pengguna mana pun, dengan menentukan nama pengguna.
crontab -l -u username

Anda dapat menemukan beberapa informasi mendetail tentang cara memformat tugas cron di /etc/crontab mengajukan. Di bawah ini adalah contoh di dalam file itu. Setiap tanda bintang dapat diganti dengan angka atau bidang yang sesuai. Atau Anda dapat membiarkan tanda bintang di tempatnya untuk mewakili semua angka yang mungkin untuk posisi itu. Misalnya, jika dibiarkan dengan tanda bintang semua, ini berarti tugas cron akan berjalan setiap menit, setiap saat.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

Mengubah Alamat Email dari Cron

Setelah dimulai, cron mengirimkan pemberitahuan ke alamat email, yang disetel dalam baris MAILTO dari crontab.

MAILTO="[email protected]"

Untuk mengedit crontab, Anda dapat menjalankan perintah berikut sebagai pengguna:

crontab -e

Atau jika login sebagai root, Anda dapat mengetikkan nama pengguna untuk setiap pengguna Anda untuk melihat tugas terjadwal yang telah mereka buat.

crontab -e -u username Ini membuka crontab pengguna di editor default. Biasanya vim atau nano perintah akan membuka file. Ketahuilah bahwa ini mirip dengan membuka file teks lain tempat Anda akan menyimpan sebelum menutup.

Baris MAILTO menunjukkan ke mana status eksekusi cron harus dikirim. Alamat pengiriman biasanya akan menjadi nama pengguna pembuat tugas cron bersama dengan nama host server. Jadi alamat pengirim email akan mengikuti sintaks ini, [email protected]. Jika Anda tidak langsung melihat email, sebaiknya periksa kotak spam Anda.

Cron yang dibungkam

Kadang-kadang tugas cron dikonfigurasi untuk tidak menghasilkan keluaran atau keluarannya dibungkam, bahkan jika disetel dengan alamat MAILTO. Jika Anda melihat pekerjaan cron terdaftar dengan salah satu dari berikut ini di akhir, itu adalah tanda bahwa cron memiliki output telah dibungkam. Ini mengirim output apa pun ke perangkat nol (lubang hitam di server Linux). Dalam kasus seperti ini, Anda harus menghapus baris dari skrip tugas cron untuk menghasilkan keluaran.

&> /dev/null

2>&1 /dev/null Beberapa pekerjaan cron dinonaktifkan sepenuhnya. Ini akan memiliki "#" di depan perintah, menghasilkan baris yang diabaikan saat dieksekusi. Hapus "#" untuk mengaktifkan kembali tugas cron.

Memverifikasi Layanan Crond

Setelah Anda mengkonfirmasi pengaturan yang benar, saatnya untuk memverifikasi bahwa sistem cron diaktifkan dan berjalan. Tiga perintah berikut masing-masing dapat digunakan untuk memverifikasi apakah cron (layanan cron) sedang berjalan.

/etc/init.d/crond status

service crond status

systemctl status crond

Setelah menjalankan salah satu perintah di atas, jika Anda menemukan layanan crond tidak berjalan, Anda dapat memulainya dengan salah satu dari berikut ini.

/etc/init.d/crond start

service crond start

systemctl start crond

/var/log/cron

Setelah Anda mengetahui bahwa cron diaktifkan, tidak dibungkam, dan cron sedang berjalan, maka saatnya untuk memeriksa log cron, yang terletak di jalur /var/log/cron .

cat /var/log/cron

Contoh Keluaran:

Oct 2 23:45:01 host CROND[3957]: (root) CMD (/usr/local/lp/apps/kernelupdate/lp-kernelupdate.pl > /dev/null 2>&1)
Oct 2 23:50:01 host CROND[4143]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 23:50:01 host CROND[4144]: (root) CMD (/usr/local/maldetect/maldet --mkpubpaths >> /dev/null 2>&1)
Di log, Anda akan melihat apakah, kapan, dan pengguna apa yang menjalankan cron. Jika dimulai, Anda akan melihat tanggal dan waktu eksekusi diikuti oleh tanda kurung dari nomor cron individu. Stempel waktu ini tidak mengonfirmasi bahwa skrip berjalan normal atau sama sekali, itu hanya menandakan kapan sistem cron terakhir menjalankan tugas. Selain itu, Anda mungkin perlu menyelidiki skrip cron itu sendiri atau konfigurasi tingkat aplikasi dan lognya masing-masing untuk memastikan kode dijalankan dengan benar.

Layanan Cron Lainnya

Artikel ini hanyalah gambaran umum layanan cron utama karena ada banyak layanan tugas cron lainnya. Sistem anacron adalah layanan cron yang umum digunakan yang mengonfigurasi pekerjaan harian atau per jam, dan bahkan dapat diatur untuk dijalankan saat reboot. Log untuk jenis tugas ini ada di dalam /var/log/cron , dan tidak dieksekusi oleh crond.

Tugas terjadwal lainnya, meskipun juga disebut sebagai tugas cron, tidak dieksekusi dari sistem crond. Pekerjaan cron ini sering dikonfigurasi dalam kode atau konfigurasi situs web. Untuk menentukan apakah dijalankan, Anda perlu menyelidiki konfigurasi dan log lain yang berinteraksi dengan skrip cron.

Seperti semua layanan cron, pekerjaan otomatis dapat dimanipulasi untuk menjalankan banyak tugas harian, jadi Anda tidak perlu melakukannya. Tugas Cron kadang-kadang bisa serba salah bahkan tanpa mengubahnya atau bertahun-tahun, tetapi mengetahui ke mana harus mencari adalah setengah dari pertempuran dalam memecahkan masalah tugas cron.


Linux
  1. Pekerjaan Cron Cluster

  2. Cara menghapus tugas cron

  3. Cara Menjadwalkan Pekerjaan Cron dengan Crontab

  1. Menggunakan di untuk pekerjaan cron sekali pakai di Linux

  2. RCRON – Atur Ketersediaan Tinggi dari Pekerjaan cron

  3. Menggunakan pekerjaan CRON untuk mengunjungi url?

  1. Pekerjaan Cron / Tugas Otomatis

  2. Tambahkan pekerjaan cron di CWP

  3. Bagaimana cron menjadwalkan pekerjaan secara internal?