Ngừng cron gửi email cho tôi


10

Làm cách nào tôi có thể ngăn cron gửi email cho tôi kết quả công việc tôi lên lịch?

Câu trả lời:


15

Bằng cách đặt biến môi trường "MAILTO" là ""

Đôi khi như:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh

12

Nếu bạn muốn một công việc duy nhất dừng email, bạn chỉ cần thêm> / dev / null 2> & 1 vào đó

Ví dụ:

0 * * * * /home/script >/dev/null 2>&1

1
Nếu bạn chắc chắn rằng một lần chạy sẽ kết thúc trước khi bắt đầu tiếp theo, có thể đáng để chuyển hướng đầu ra sang một tệp đã đặt tên thay vì / dev / null: điều đó cho phép tùy chọn kiểm tra những gì đã xảy ra với lần chạy cuối cùng nếu bạn nghi ngờ vấn đề.
mas

4

Cron chỉ gửi email cho bạn nếu có đầu ra, trên stdouthoặc stderr.

Nếu đó là kịch bản bạn đã viết, hãy làm cho nó ít dài dòng hơn - loại bỏ các câu lệnh echohoặc printcâu lệnh không cần thiết . Chuyển hướng stdoutđến /dev/nullcũng là một giải pháp hợp lệ:

2 * * * * /my/script > /dev/null

Nếu bạn vẫn nhận được tin nhắn sau khi thực hiện việc đó, thì đầu ra được bật stderr, do đó, đó sẽ là một lỗi, bạn nên giải quyết .. Nếu không, bạn có thể chuyển hướng stderrđến /dev/nullvới ..

2 * * * * /my/script > /dev/null 2> /dev/null

.. mặc dù coi thường các thông báo lỗi nói chung là một ý tưởng tồi! (Làm thế nào bạn sẽ biết khi công việc định kỳ bị hỏng?)

Bạn có thể chuyển hướng đầu ra của một lệnh cụ thể từ stderr sang stdout bằng cách sử dụng 2>&1- ví dụ:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

.. stdoutđến trực tiếp /dev/nulltrong công việc định kỳ của bạn - theo cách đó bạn tắt tiếng lệnh lớn mà không làm mất thông báo lỗi

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.