หยุด cron ไม่ให้ส่งอีเมลฉัน


10

ฉันจะหยุด cron ไม่ให้ส่งผลงานที่ฉันกำหนดเวลาส่งถึงฉันได้อย่างไร

คำตอบ:


15

โดยการตั้งค่าตัวแปรสภาพแวดล้อม "MAILTO" เป็น ""

Somethig ชอบ:

SHELL=/bin/bash
MAILTO=



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

12

หากคุณต้องการให้งานเดียวหยุดอีเมลคุณเพียงต่อท้าย> / dev / null 2> & 1

ตัวอย่างเช่น:

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

1
หากคุณแน่ใจว่าการรันหนึ่งครั้งจะเสร็จสิ้นก่อนการเริ่มครั้งถัดไปอาจเป็นการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ที่กำหนดชื่อแทนที่จะเป็น / dev / null: ซึ่งให้ตัวเลือกในการตรวจสอบว่าเกิดอะไรขึ้นกับการรันครั้งสุดท้ายหากคุณสงสัย ปัญหา.
MAS

4

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 ของคุณ - วิธีที่คุณจะเงียบคำสั่งดังโดยไม่สูญเสียข้อความผิดพลาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.