Saya memiliki CentOS 6.6
server dengan paket-paket berikut diinstal:
crontabs-1.10-33.el6.noarch
cronie-1.4.4-12.el6.x86_64
cronie-anacron-1.4.4-12.el6.x86_64
kernel-2.6.32-504.3.3.el6.x86_64
Terkadang, salah satu pekerjaan cadangan yang dijadwalkan untuk berjalan setiap hari tidak berjalan. Script bahkan tidak dipanggil sesuai dengan /var/log/cron.log
. Menarik untuk menyebutkan bahwa pekerjaan lain dijadwalkan untuk berjalan tepat pada saat yang sama berjalan tanpa masalah.
Saya tidak dapat mereproduksi masalah dan belum menemukan pola apa pun padanya. Jika saya tidak melakukan apa-apa, maka pekerjaan berjalan dengan benar pada hari berikutnya seperti yang diharapkan.
crond hanya mengabaikan salah satu dari banyak pekerjaan yang seharusnya dijalankan pada waktu tertentu. Ini hanya terjadi secara sporadis.
Saya membaca di beberapa tempat orang-orang berbicara tentang menambahkan baris kosong di akhir crontab
file. Pekerjaan yang terkadang gagal dijalankan memang ada di baris terakhir crontab
file saya . Saya tidak dapat menemukan konfirmasi apa pun bahwa ini adalah bug yang nyata atau diketahui.
# tail -2 /var/spool/cron/postgres
* * * * * OTHERJOB
0 21 * * * /pg_backup.sh
Ini semua yang saya miliki di blog saya /var/log/cron.log
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19394]: (root) CMD (OTHERJOB)
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19418]: (postgres) CMD (/pg_backup.sh)
Mar 31 21:01:02 SERVERNAME [cron.info] CROND[20062]: (root) CMD (OTHERJOB)
Apr 1 21:00:02 SERVERNAME [cron.info] CROND[31349]: (root) CMD (OTHERJOB)
Apr 1 21:01:01 SERVERNAME [cron.info] CROND[32080]: (root) CMD (OTHERJOB)
Lihat bagaimana OTHERJOB
selalu berjalan saat Apr 1
pg_backup.sh
tidak bahkan dieksekusi.
Saya sudah mencoba memulai kembali crond
tetapi ini terus terjadi. Ini memengaruhi banyak server dengan versi OS, kernel, dan cron
RPM yang sama.
Ada versi yang lebih baru dari cronie
( 1.4.12
), namun memutakhirkannya bukanlah pilihan karena kami sudah menggunakan versi terbaru yang tersedia untukCentos 6.6
Saya telah melalui changelog untuk semua cronie
versi setelah versi saya ( 1.4.4
) dan sepertinya belum ada perbaikan untuk masalah ini. Juga memeriksa semua pesan komit .
echo >/dev/null
untuk misal)?/var/log/audit/audit.log
.Jawaban:
Cron asli mengharuskan setiap entri diakhiri dengan baris baru jadi ya kadang-kadang Anda memang membutuhkan baris kosong atau sesuatu di bagian akhir.
Beberapa versi memilikinya tetap atau memancarkan peringatan misalnya Ubuntu Maverik (10.10): crontab lihat di bagian diagnostik di bagian bawah yang menyatakan peringatan akan ditulis ke syslog.
sumber
Ini adalah jawaban pertama yang muncul dengan teks pencarian
cron error getpwname failed
jadi saya pikir saya akan memposting penyebab masalah saya:Saya menggunakan / etc / crontab tetapi lupa untuk menempatkan pengguna di depan perintah.
yaitu,
Dari pada
Itu memberi kesalahan yang sama, pergi angka.
sumber
kami gunakan
sssd
untuk autentikasi jarak jauh.crond
harus memeriksa pengguna yang tersedia sebelum menjalankan pekerjaan dan melakukan ini setiap 60 detik.sssd
standarnyaclient_idle_timeout
adalah 60 detik. jadi kami memiliki kondisi balapan antarasssd
dancrond
Kami hanya sampai di bagian bawah masalah ini karena pada versi
1.4.4-14
crond mulai menjadi sedikit lebih banyak tentang beberapa kesalahan.Setelah memperbarui ke versi itu kami mulai melihat kesalahan di bawah pada saat yang sama pekerjaan tidak akan berjalan:
yang membawa kami ke ini: https://bugzilla.redhat.com/show_bug.cgi?id=1209600#c2
dan akhirnya ke ini: https://access.redhat.com/solutions/1125133
Solusi yang disarankan pada tautan di atas adalah tambahkan baris di bawah ini ke
/etc/sssd/sssd.conf
:Perubahan di atas telah memperbaiki masalah bagi kami dan cron tidak lagi melewatkan pekerjaan.
sumber