แทนที่ MAILTO สำหรับรายการ crontab เดียว


20

เรามีบัญชีบทบาทที่ทำงานที่มี crontab ที่ใหญ่มาก มัน MAILTO จะชี้ไปที่ที่อยู่ที่ใช้ร่วมกันเพื่อให้เราจำนวนมากได้รับการแจ้งเตือนหากมีสิ่งที่ล้มเหลว

ฉันต้องการเพิ่มรายการใน crontab นี้ แต่ฉันต้องการให้ฉันรับการแจ้งเตือนหากมีสิ่งผิดปกติ มีวิธีในการเปลี่ยน MAILTO สำหรับรายการนี้หรือไม่หรือบรรลุเป้าหมายของฉันหรือไม่


อีกวิธีหนึ่งสำหรับผู้ที่แนะนำจนถึงขณะนี้คือการใช้คุณสมบัติที่ cron ส่งอีเมลถึงผู้ใช้ที่กำลังทำงานอยู่ดังนั้นให้สร้างผู้ใช้รายอื่นสำหรับงานนี้และส่งต่ออีเมลถึงคุณ
Hayden Thring

คำตอบ:


21

คุณสามารถทำได้เสมอ:

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination

1
คนที่สนับสนุนการทดลองนี้จริงหรือไม่ ถ้าเป็นเช่นนั้นสิ่งที่ cron ใช้งาน?
user1338062

ฉันทดสอบกับ ICS / Vixie cron ที่มาพร้อมกับ Ubuntu 14.04 ("3.0pl1-124ubuntu2") และมันทำงานได้ดีที่นั่น
Nils Toedtmann

น่าเกลียด แต่วิธีเดียวที่จะแยกแยะ Works!
ต๊อ

10

คุณสามารถไพพ์เอาต์พุตทั้งหมดไปยังคำสั่ง mail ด้วยแอดเดรสที่ถูกต้องในเชลล์ย่อย ตราบใดที่ไม่มีสิ่งใดใน STDOUT หรือ STDERR cron จะไม่ส่งอีเมล

10 * * * * sh -c 'thisonecommand 2> & 1 | mail otheraddress@foo.com '


1
สิ่งนี้ไม่ทำงาน - คำสั่ง "mail" จะส่งโดยไม่คำนึงว่าจะได้รับเอาต์พุตหรือไม่ ดังนั้นฉันจึงได้รับข้อความที่ว่างเปล่าเกี่ยวกับความสำเร็จในขณะที่สิ่งที่ฉันต้องการคือไม่มีข้อความเกี่ยวกับความสำเร็จ
ไมค์

5
ดี! และเพื่อหลีกเลี่ยงอีเมลเปล่าจากคำสั่ง mail ให้ใช้พารามิเตอร์นี้: -e (หรือ -E สำหรับบางคน .. )

3

ฉันจำไม่ได้ว่า cron เตรียมไฟล์ไว้อ่านใน vars หรือไม่ดังนั้นฉันไม่แน่ใจว่าคุณสามารถเปลี่ยนได้MAILTOหลายครั้งในไฟล์เดียว แต่คุณสามารถแยกมันไปยังแฟ้มอื่นและวางไว้ในที่มี/etc/cron.d/fooMAILTO=some@email.tld

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