Thiết MAILTO=user@example.org
trong /etc/cron.daily/foo
không làm việc. Đầu ra tập lệnh không được gửi đến user@example.org.
Trang tại http://www.unixgeek.org/security/newbie/unix/cron-1.html cũng gợi ý một giải pháp đơn giản:
Các tập tin /etc/cron.daily/foo
hiện có chứa như sau:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Điều này sẽ gửi email đến 'stefanl@example.org' với chủ đề tương đương với đường dẫn đầy đủ của tập lệnh (ví dụ /etc/cron.daily/foo
).
Đây là những gì Unixgeek.org nói về điều này:
Đầu ra từ cron
Như tôi đã nói trước đây, đầu ra từ cron được gửi đến chủ sở hữu của quy trình hoặc người được chỉ định trong biến MAILTO, nhưng nếu bạn không muốn điều đó thì sao? Nếu bạn muốn gửi đầu ra cho người khác, bạn chỉ có thể chuyển đầu ra sang thư lệnh. ví dụ
cmd | người dùng "chủ đề của thư"
Đôi khi, tôi chỉ muốn nhận lỗi từ một cronjob chứ không phải stdout, vì vậy tôi sử dụng thủ thuật này. Cú pháp có thể nhìn sai từ cái nhìn đầu tiên, nhưng yên tâm rằng nó hoạt động. Các cronjob sau sẽ gửi STDOUT tới / dev / null và sau đó sẽ xử lý STDERR qua đường ống.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
Điều tương tự, nhưng gửi đến syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Đồng thời xem câu trả lời của tôi trên ServerFault to Cronjob stderr để gửi và gửi email
/etc/crontab
không chỉ định mặc định.