ฉันพยายามแก้ไขปัญหาว่าทำไม cron task ของฉันไม่ทำงานในบางครั้ง cron เก็บไฟล์บันทึกไว้ที่ใด มัน / var / log / syslog?
ฉันดูไฟล์นั้นแล้วและว่างเปล่า ฉันจำเป็นต้องตั้งค่าบางอย่างหรือไม่?
ฉันพยายามแก้ไขปัญหาว่าทำไม cron task ของฉันไม่ทำงานในบางครั้ง cron เก็บไฟล์บันทึกไว้ที่ใด มัน / var / log / syslog?
ฉันดูไฟล์นั้นแล้วและว่างเปล่า ฉันจำเป็นต้องตั้งค่าบางอย่างหรือไม่?
คำตอบ:
ตามค่าเริ่มต้นบันทึกของ cron จะถูกบันทึกใน / var / log / syslog มันขึ้นอยู่กับการกำหนดค่า rsyslogd คุณสามารถเปลี่ยนมันได้:
ไปที่ rsyslog config
cd /etc/rsyslog.d/
sudo nano 50-default.conf
บรรทัดที่ไม่แสดงตัว:
# cron. * /var/log/cron.log
บันทึกไฟล์และรีสตาร์ท rsyslog
sudo บริการ rsyslog รีสตาร์ท
รีสตาร์ท cron daemon ของคุณเพื่อรับข้อความจากไฟล์ใหม่
sudo บริการ cron เริ่มใหม่
เมื่อไม่ได้ทำงานก็จะส่งอีเมลไปยังผู้ใช้cron
root
ปัญหาเดียวคือคุณไม่มีซอฟต์แวร์ที่จะส่ง / เก็บจดหมายในกล่องจดหมาย
แต่ไม่มีความกลัวPostfix
อยู่ที่นี่!
sudo apt-get update sudo apt-get postfix ติดตั้ง heirloom-mailx
เมื่อติดตั้งpostfix
แล้วมันจะถามคุณว่าคุณต้องการติดตั้งมันอย่างไร ในหน้าจอแรกเลือกlocal only
และดำเนินการตามค่าเริ่มต้นสำหรับทุกอย่างอื่น
/etc/aliases
ตอนนี้ใช้โปรแกรมแก้ไขที่คุณชื่นชอบแก้ไข มันจะมีลักษณะเช่นนี้ในตอนแรก:
# ดูชื่อแทน 5 คนสำหรับรูปแบบ บุรุษไปรษณีย์: รูต
สิ่งนี้หมายความว่าจดหมายใด ๆ ที่ส่งไปpostnaster
จะถูกส่งไปยังroot
เช่นกัน ในกรณีนี้เราต้องการให้ส่งจดหมายใด ๆroot
(สำหรับจดหมาย cron และจดหมายระบบอื่น ๆ ) ที่จะส่งไปยังusername
(เรา)
ดังนั้นแก้ไข/etc/aliases
ให้ดูเหมือน:
# ดูชื่อแทน 5 คนสำหรับรูปแบบ บุรุษไปรษณีย์: รูต root: นอร์แมน
(แทนที่norman
ด้วยชื่อผู้ใช้ของคุณอย่างชัดเจนเว้นแต่คุณจะมีชื่อ / ชื่อผู้ใช้เดียวกันกับฉัน :))
หลังจากที่ทุกคนพูดและทำแล้วให้เรียกใช้คำสั่งต่อไปนี้เพื่อpush
เปลี่ยนแปลง:
sudo newaliases
ตอนนี้หลังจากที่ทำงาน:
sudo dpkg-reconfigure postfix
คุณจะได้รับหน้าจอเดียวกับที่คุณเคยติดตั้งมาpostfix
ก่อน ทำงานผ่านค่าเริ่มต้น ( Local Only
ฯลฯ ) เมื่อคุณไปถึงตอนที่ขอรูทและชื่อแทนภายหลังให้ตรวจสอบให้แน่ใจว่าเป็นชื่อเดียวกันกับที่คุณเพิ่มไว้/etc/aliases
ด้านบน จากนั้นเรียกใช้ผ่านค่าเริ่มต้น
เมื่อเสร็จแล้วให้เรียกใช้คำสั่งต่อไปนี้เพื่อรีสตาร์ทpostfix
และดำเนินการต่อ!
sudo service postfix ทำการรีสตาร์ท
ตอนนี้ถ้า cron มีข้อผิดพลาดมันจะถูกส่งถึงคุณ แต่คุณอาจสงสัยว่าฉันจะเช็คอีเมลของฉันได้อย่างไรในโลก?
หากต้องการทำเช่นนั้นให้เรียกใช้คำสั่ง:
อีเมล
ง่าย ๆ No mail for <username>
หากมีจดหมายไม่มีมันจะบอกว่า มิฉะนั้นคุณจะได้รับส่วนต่อประสานเทอร์มินัลที่ใช้งานได้ดี ดูหน้าคนสำหรับข้อมูลเกี่ยวกับวิธีการโต้ตอบกับกล่องจดหมายของคุณ
หรือถ้าคุณต้องการคุณสามารถเข้าถึงหน้าคนท้องถิ่นของคุณโดยใช้:
จดหมายผู้ชาย
และตอนนี้คุณทำเสร็จแล้ว! :)
PS คุณควรอ่านนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับcron
ปัญหา
เมื่อทำงานmail
ฉันได้รับการตอบสนองต่อไปนี้:
The program 'mail' is currently not installed. To run 'mail' please ask your administrator to install the package 'mailutils'
ฉันพบข้อผิดพลาด / เมลที่เก็บไว้แทน /var/mail/root
มันอยู่ใน/var/log/syslog
ค่าเริ่มต้น
แต่สามารถตั้งค่าเพื่อสร้าง cron.log แยกต่างหากซึ่งมีประโยชน์มากกว่า
คำถาม & คำตอบนี้อธิบายกระบวนการ:
16.04: ฉันจะทำให้ cron สร้าง cron.log และตรวจสอบในเวลาจริงได้อย่างไร
นอกจากนี้ในคำตอบนี้เป็นคำแนะนำในการสร้างwcron
คำสั่งที่แสดงว่าใกล้เวลาจริง นอกจากนี้ยังเชื่อมโยงไปยังคำตอบอื่น
จะเปลี่ยนระดับการบันทึก cron ได้อย่างไร?
ที่แสดงวิธีการเปลี่ยนระดับการบันทึกเพื่อรวมมากกว่าแค่การเริ่มงาน - ระดับ 15 จะแสดงข้อผิดพลาดและเวลาสิ้นสุดเช่นกัน
crond
เมลเจ้าของงานไม่จำเป็นต้องรูทดังนั้นหากเป็นงานของคุณเองที่คุณติดตั้งไว้crontab -e
คุณก็จะได้รับเมล สิ่งนี้ก็เป็นจริงเช่นกันไม่ว่างานนั้นจะ“ ล้มเหลว” หรือไม่เพียงแค่ส่งหลักฐานการส่งออกใด ๆ