ฉันจะทราบได้อย่างไรว่า cron ไม่ทำงานของฉัน


15

ฉันใช้ Ubuntu 14.04 และ cron daemon กำลังทำงาน:

# ps ax | grep cron
822 ?        Ss     0:00 cron

แต่มันไม่ได้ดำเนินงานใด ๆ ก่อนหน้านี้ฉันเคยได้รับผลงาน/var/log/syslogเช่นนี้:

2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

แต่ตอนนี้ไม่มีรายการที่เกี่ยวข้องกับ cron ฉันยังได้รับรายการเช่นนี้ใน/var/log/auth.log:

2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root

แต่อีกครั้งตอนนี้ไม่มีรายการที่เกี่ยวข้องกับ cron

ฉันไม่ทราบว่ามีอะไรเปลี่ยนแปลง ฉันได้ลองรีสตาร์ท cron:

# service cron restart
cron stop/waiting
cron start/running, process 24907

ฉันพยายามใช้crontab -eเพื่อเพิ่มงาน cron * * * * * date >> /tmp/somefileที่ทำงาน แต่มันติดตั้ง crontab ใหม่ใน/var/spool/cron/crontabs/rootขณะที่ฉันต้องการที่จะใช้ cron /etc/crontabไฟล์ใน

มีตัวเลือกการดีบักใด ๆ ที่ฉันสามารถใช้ได้หรือบันทึกที่ไหนสักแห่งที่อาจทำให้เกิดข้อผิดพลาดที่ฉันสามารถตรวจสอบได้?


1
สิ่งที่แสดงให้ crontab -l
user345352353

no crontab for root.
jl6

ฉันเชื่อว่าถ้าคุณค้นหาเว็บไซต์ SE นี้เล็กน้อยคุณจะได้รับคำตอบ นี่เป็นปัญหาที่พบบ่อยพอสมควร
mdpc

Crons ที่ดึงมาโดยใช้crontabคำสั่ง ( -lสวิตช์) ขึ้นอยู่กับผู้ใช้ในขณะที่/etc/crontabใช้เพื่อเก็บ crons ทั่วทั้งระบบ ด้วยเหตุนี้งานที่บันทึกไว้ในจะไม่ปรากฏในทุกคน/etc/crontab crontab -l
John WH Smith

คำตอบ:


4

เพื่อช่วยคุณแก้ไขข้อผิดพลาดในcronงานของคุณเพิ่มเติมคุณควรตรวจสอบอีเมลของคุณ นี้มักจะถูกเก็บไว้ในไฟล์เหมือนหรือ/var/mail/<user_name>/var/spool/mail/<user_name>

ไฟล์สองไฟล์นี้เป็นฮาร์ดลิงก์จริง ๆ ในกล่อง Debian ของฉัน แต่ฉันไม่รู้ว่านี่เป็นมาตรฐานหรือไม่

คำอธิบาย

จากcron(8)หน้า:

เมื่อรันคำสั่งเอาต์พุตใด ๆ จะถูกส่งไปยังเจ้าของ crontab (หรือผู้ใช้ที่มีชื่อในตัวแปรสภาพแวดล้อม MAILTO ใน crontab หากมีอยู่)


ฉันตรวจสอบจดหมายแล้ว ไม่มีการสร้างและไม่มีไฟล์ dead.letter
jl6

0

คุณแสดงให้เห็นว่าไม่มีรากของ crontab สำหรับผู้ใช้ใด ๆ มีรายการ crontab หรือไม่? หากคุณใช้รูทเท่านั้นคุณสามารถตรวจสอบไดเรกทอรีต่อไปนี้: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

บนเครื่องของฉัน (centos 6.4) ฉันมี mlocate.cron ภายในไดเร็กทอรี /etc/cron.daily/ และ cron จะเรียกใช้สคริปต์ทุกวัน

ดังนั้นฉันคิดว่าคุณเพียงแค่ต้องเพิ่มงาน cron


แต่มีไฟล์ crontab /etc/crontabใน บางทีคำถามคือทำไมcrontab -lไม่ยอมรับมัน?
jl6

0

ฉันแก้ไขปัญหานี้โดยเปลี่ยนการอนุญาต/etc/crontabเป็นดังนี้:

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

-rw-rw-r--ก่อนหน้านี้มันเป็น นั่นคือการเปลี่ยนแปลงเท่านั้น มันไม่ทำงานตอนนี้มันเป็น ยังไม่แน่ใจว่าทำไม


1
crontab รูทจะรันคำสั่งใด ๆ ในฐานะ root สิทธิ์ที่อนุญาตการเขียนเพื่อเข้าถึงที่ไม่ใช่รูทจะถือเป็นช่องโหว่ด้านความปลอดภัย
ChuckCottrill

@ChuckCottrill: แต่กลุ่มการเขียนบิตจะให้สิทธิ์การเข้าถึงเพื่อเขียนในกลุ่มรูทเท่านั้น - ซึ่งผู้ใช้รูทนั้นคือใคร?
jl6

0

ฉันยังมีปัญหาประเภทเดียวกัน แต่หลังจากระบุรูตในฐานะผู้ใช้บน/etc/crontabงาน cron ก็เริ่มทำงาน

มันอาจจะเป็นเพราะไวยากรณ์ที่ใช้บนซึ่งจะแตกต่างจากcrontab -e/etc/crontab

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.