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?
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:
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
Cron chỉ gửi email cho bạn nếu có đầu ra, trên stdout
hoặ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 echo
hoặc print
câu lệnh không cần thiết . Chuyển hướng stdout
đến /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 đượ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/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
.. stdout
đến trực tiếp /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