ฉันจะหยุด 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 อีเมลที่คุณเฉพาะในกรณีที่มีการส่งออกทั้งในหรือstdoutstderr
ถ้าเป็นสคริปต์ที่คุณเขียนให้ใช้คำน้อย - ลบคำที่ไม่จำเป็น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 ของคุณ - วิธีที่คุณจะเงียบคำสั่งดังโดยไม่สูญเสียข้อความผิดพลาด