ฉันจะหยุด cron ไม่ให้ส่งผลงานที่ฉันกำหนดเวลาส่งถึงฉันได้อย่างไร
ฉันจะหยุด cron ไม่ให้ส่งผลงานที่ฉันกำหนดเวลาส่งถึงฉันได้อย่างไร
คำตอบ:
โดยการตั้งค่าตัวแปรสภาพแวดล้อม "MAILTO" เป็น ""
Somethig ชอบ:
SHELL=/bin/bash
MAILTO=
01 * * * * /your/path/to/script/here.sh
หากคุณต้องการให้งานเดียวหยุดอีเมลคุณเพียงต่อท้าย> / dev / null 2> & 1
ตัวอย่างเช่น:
0 * * * * /home/script >/dev/null 2>&1
Cron อีเมลที่คุณเฉพาะในกรณีที่มีการส่งออกทั้งในหรือstdout
stderr
ถ้าเป็นสคริปต์ที่คุณเขียนให้ใช้คำน้อย - ลบคำที่ไม่จำเป็นecho
หรือprint
ข้อความ การเปลี่ยนเส้นทางstdout
ไป/dev/null
ยังเป็นโซลูชันที่ถูกต้อง:
2 * * * * /my/script > /dev/null
หากคุณยังได้รับข้อความหลังจากทำเช่นนั้นแสดงว่าเปิดอยู่stderr
ดังนั้นมันควรจะเป็นข้อผิดพลาดซึ่งคุณควรแก้ไข .. ถ้าไม่คุณสามารถเปลี่ยนเส้นทางstderr
ไปยัง/dev/null
ด้วย ..
2 * * * * /my/script > /dev/null 2> /dev/null
.. ข้อความข้อผิดพลาดที่ไม่สนใจโดยทั่วไปเป็นความคิดที่ไม่ดี! (คุณจะรู้ได้อย่างไรว่างาน cron เสีย)
คุณสามารถเปลี่ยนเส้นทางคำสั่งเฉพาะจาก stderr ไปยัง stdout โดยใช้2>&1
- ตัวอย่างเช่น:
command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout
.. จากนั้นตรงstdout
ไปยัง/dev/null
งาน cron ของคุณ - วิธีที่คุณจะเงียบคำสั่งดังโดยไม่สูญเสียข้อความผิดพลาด