Ghi đè MAILTO cho một mục crontab duy nhất


20

Chúng tôi có một tài khoản vai trò tại nơi làm việc có một crontab khá lớn. MAILTO của nó được trỏ đến một địa chỉ dùng chung, để một số người trong chúng ta được thông báo nếu có lỗi.

Tôi muốn thêm một mục vào crontab này, nhưng tôi chỉ muốn bản thân được thông báo nếu có sự cố. Có cách nào để thay đổi MAILTO cho mục này hay nói cách khác là hoàn thành mục tiêu của tôi?


Một cách tiếp cận khác được đề xuất cho đến nay, là sử dụng tính năng gửi email cho người dùng đang thực hiện công việc, vì vậy hãy tạo một người dùng khác chỉ cho công việc này và chuyển tiếp email của bạn cho bạn.
Hayden Thring

Câu trả lời:


21

Bạn luôn có thể làm:

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

1
Có phải những người ủng hộ điều này thực sự kiểm tra nó? Nếu vậy, cron thực hiện những gì?
user1338062

Tôi đã thử nghiệm nó với cron ICS / Vixie được bán kèm với Ubuntu 14.04 ("3.0pl1-124ubfox2") và nó hoạt động tốt ở đó.
Nils Toedtmann

Xấu xí, nhưng khá nhiều cách duy nhất để sắp xếp thứ này. Công trinh!
stamster

10

Bạn luôn có thể chuyển tất cả đầu ra sang lệnh mail với địa chỉ chính xác trong một khung con. Miễn là không có gì trên STDOUT hoặc STDERR cron sẽ không gửi email

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


1
Điều này không hoạt động - lệnh "mail" sẽ gửi bất kể nó có được xuất hay không. Vì vậy, tôi nhận được một thông điệp trống rỗng về thành công, trong khi những gì tôi muốn là không có thông điệp về thành công.
mike

5
Tốt đẹp! Và để tránh các email trống từ lệnh mail, hãy sử dụng tham số này: -e (hoặc -E cho một số ..)

3

Tôi không thể nhớ lại nếu cron chuẩn bị tệp để đọc trong vars môi trường, vì vậy tôi không chắc liệu bạn có thể thay đổi MAILTOnhiều lần trong một tệp không. Nhưng bạn luôn có thể chia nó thành một tệp khác và đặt nó vào /etc/cron.d/foovới một MAILTO=some@email.tld.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.