it-swarm-vi.tech

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

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?

10
Richard Hoskins

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

Cái gì đó như:

Shell=/bin/bash
MAILTO=



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

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
12
Rob

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

Nếu đó là tập lệnh 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 echo hoặc print không cần thiết. Chuyển hướng stdout sang /dev/null cũ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 là stderr, do đó, nên 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 sang /dev/null vớ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

.. từ đó trực tiếp stdout đến /dev/null trong 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

4
dbr