cron 작업에서 기본 메일 수신자를 변경할 수 있습니까?


12

나는 cronjob에서 출력이 있으면 작업이 속한 사용자에게 메일로 발송된다고 생각합니다. MAILTO=vivek@nixcraft.incron 파일 상단에 출력을 보낼 위치를 변경하는 것과 같은 것을 추가 할 수도 있다고 생각합니다 .

cron 작업이 시스템 전체 root 를 실행하는 사용자 대신 이메일로 전송되도록 옵션을 설정할 수 있습니까 ? (즉, 각 사용자의 cron 파일에서 이것을 설정할 필요가 없도록)

답변:


9

/etc/crontab파일을 확인 하고 MAILTO=root거기에 설정 하십시오 . /etc/rc파일에 필요할 수도 있습니다

crondMAILTO 변수를 허용하는 것 같습니다. 완전히 확실하지는 않지만 시작하기 전에 crond에 대한 환경 변수를 변경해 볼 가치가 있습니다. 이전 파일을 제공하는 스크립트 /etc/sysconfig/crond또는 /etc/rc.d/init.d/crond스크립트 와 같습니다 .

예:

[centos@centos scripts]$ strings /usr/sbin/crond | grep -i mail
ValidateMailRcpts
MailCmd
cron_default_mail_charset
usage:  %s [-n] [-p] [-m <mail command>] [-x [
CRON_VALIDATE_MAILRCPTS
mailed %d byte%s of output but got status 0x%04x
[%ld] no more grandchildren--mail written?
MAILTO
/usr/sbin/sendmail
mailcmd too long
[%ld] closing pipe to mail
MAIL

매우 감사합니다! +1. 아마도 답변의 맨 아래 부분을 사전 형식 / 코드 형식으로 넣었습니까?
— cwd

7

넣 MAILTO=root습니다 /etc/default/cron. 이 파일에는 cron의 기본 설정이 포함되어 있습니다.

man 5 crontab 말한다

MAILTO가 정의되고 비어 있지 않은 경우 이름이 지정된 사용자에게 메일이 전송됩니다.

참조 : http://man.cx/cron(1)#heading4


어디? 각 사용자의 crontab 파일마다
— Nikhil Mulley

@ Nikhil 업데이트 된 답변을 확인하십시오.
— Sachin Divekar

1
crontab이있는 사용자 만 사용할 수 있습니다. 이 변수가 설정되지 않은 사용자가 있으면 작동합니까? @Cwd는 모든 사용자를위한 전역 설정을 특별히 요구했다고 생각합니다.
— Nikhil Mulley

@SachinDivekar -1 Nikhil이 맞습니다. 또한 내 질문을 편집하고 그 의미를 변경했습니다. 편집 된 의미는 귀하의 답변과 일치하지만 이것은 내가 요구 한 것이 아닙니다.
— cwd

2
이것은 나를 위해 작동하지 않습니다. 기본 파일에서 MAILTO를 설정하고 cron 서비스를 다시 시작했지만 여전히 루트로 전송 중입니다 (외부 전자 메일 주소로 전송하려고 함)
— peedee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.