วิธีหยุดรายงานอีเมลจาก Cron <root @ machine> (รายชั่วโมง)


15

ฉันใช้ Ubuntu 12.04 ฉันได้กำหนดค่า "ssmtp" ด้วยบัญชี gmail ของฉันและตอนนี้ฉันได้รับอีเมลพร้อมรายงานทุกชั่วโมงนี่เป็นตัวอย่าง:

From: root <my@gmail.com> Date: 2012/8/13 Subject: Cron <root@one> [
-x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth
-mindepth 1 -maxdepth 1 -type f -cmin
+$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete To: root

Failed loading /usr/lib/php5/20090626/xdebug.so: 
/usr/lib/php5/20090626/xdebug.so: cannot open shared object file: No
such file or directory

ข้อมูลเพิ่มเติมบางส่วน:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"

มากกว่า...

$ sudo crontab -l -u root
no crontab for root

มากกว่า...

$ nano /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly 
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.weekly ) 
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

ฉันแสดงความคิดเห็น17 * * * * root cd / && run-parts --report /etc/cron.hourlyแต่อีเมลยังมาถึง

คำตอบ:


13

เพียงเพิ่มด้านล่างเพื่อ /etc/crontab

MAILTO=""

ที่จะหยุด crontab ส่งอีเมลแก้ไขทั้งหมดและเพิ่มนี้/etc/sysconfig/crond บันทึกและรีสตาร์ท crondCRONDARGS='-m off'


ดูเหมือนว่าจะต้องเพิ่มบรรทัดนี้ในไฟล์ crontab ทุกไฟล์ที่ต้องการปิดเสียง (อย่างน้อยจากการทดสอบของฉัน) ยังระวังว่า crons ผู้ใช้อยู่ที่อื่น: serverfault.com/a/325344/210994
ThorSummoner

@ThorSummoner เมื่อพูดถึง " ... ทุกไฟล์ crontab ... " นั่นคือใน crontab เองหรือในสคริปต์ที่อยู่ใต้บรรทัด Shebang?
3kstc

8

เมื่อ cron เริ่มกระบวนการมันจะจับเอาท์พุทใด ๆ ที่มาถึง stdout และ stderr และส่งมันในอีเมล เพื่อป้องกันอีเมลเหล่านี้คุณสามารถนำ stdout และ stderr ไปยังล็อกไฟล์ที่คุณตรวจสอบหรือ / dev / null อีกครั้งหากคุณไม่สนใจ

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly 2>&1 > /dev/null

Hi! ขอบคุณสำหรับคำตอบฉันอย่างรวดเร็ว! ฉันพบปัญหานี้แล้วซึ่งฉันคิดว่าเป็นสาเหตุของปัญหา: bugs.launchpad.net/ubuntu/+source/php5/+bug/876387 ดังนั้นจนกว่าปัญหาจะได้รับการแก้ไขฉันจะใช้วิธีแก้ปัญหาของคุณ! ขอบคุณอีกครั้ง! nonox
user83162

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