การตั้งค่าMAILTO=user@example.org
ใน/etc/cron.daily/foo
ไม่ทำงาน เอาต์พุตสคริปต์ไม่ถูกส่งไปที่ user@example.org
หน้าเว็บที่http://www.unixgeeks.org/security/newbie/unix/cron-1.htmlยังแนะนำวิธีแก้ปัญหาที่ง่าย:
ไฟล์/etc/cron.daily/foo
นี้มีดังต่อไปนี้:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
การดำเนินการนี้จะส่งอีเมลไปที่ 'stefanl@example.org' พร้อมหัวเรื่องที่เท่ากับเส้นทางแบบเต็มของสคริปต์ (เช่น/etc/cron.daily/foo
)
นี่คือสิ่งที่ Unixgeeks.org พูดเกี่ยวกับสิ่งนี้:
ผลผลิตจาก cron
อย่างที่ฉันได้บอกไปแล้วผลลัพธ์จาก cron จะถูกส่งไปยังเจ้าของกระบวนการหรือบุคคลที่ระบุในตัวแปร MAILTO แต่ถ้าคุณไม่ต้องการมัน หากคุณต้องการส่งออกทางไปรษณีย์ไปยังคนอื่นคุณสามารถส่งออกไปยังคำสั่ง mail เช่น
cmd | เมล -s "หัวเรื่องของเมล" ผู้ใช้
บางครั้งฉันต้องการได้รับข้อผิดพลาดจาก cronjob ไม่ใช่ stdout ดังนั้นฉันจึงใช้เคล็ดลับนี้ ไวยากรณ์อาจดูผิดในครั้งแรก แต่มั่นใจได้ว่าใช้งานได้ cronjob ต่อไปนี้จะส่ง STDOUT ไปที่ / dev / null และจะจัดการ STDERR ผ่านไปป์ไลน์
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
สิ่งเดียวกัน แต่ส่งไปยัง syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
ดูคำตอบของฉันใน ServerFault ถึงCronjob stderr ไปที่ไฟล์และอีเมล
/etc/crontab
ไม่ได้ระบุค่าเริ่มต้น