it-swarm-ko.tech

/etc/cron.daily/foo : 루트 대신 특정 사용자에게 이메일을 보내시겠습니까?

CentOS 5.5를 실행하고 있습니다.

/etc/cron.daily/에 여러 cronjob이 저장되어 있습니다. 이러한 cronjob 중 일부에 대한 이메일은 특정 이메일 주소로 이동하고 /etc/cron.daily/의 나머지 이메일은 기본 이메일 주소 (root @ localhost)로 이동해야합니다.

/etc/cron.daily/의 Cronjob은/etc/crontab 파일에서 실행됩니다./etc/crontab은 'MAILTO'필드를 지정합니다. 내 /etc/cron.daily/foo cronjob에서 MAILTO를 설정하여이를 재정의 할 수 있습니까?

이를 처리하는 가장 좋은 방법은 무엇입니까?

13
Stefan Lasiewski

[email protected]에서 /etc/cron.daily/foo 설정이 작동하지 않습니다. 스크립트 출력은 [email protected]로 전송되지 않습니다.

http://www.unixgeeks.org/security/newbie/unix/cron-1.html 페이지에서도 간단한 해결책을 제안합니다.

이제 /etc/cron.daily/foo 파일에 다음이 포함됩니다.

#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" [email protected]

그러면 스크립트의 전체 경로 (예 : /etc/cron.daily/foo)와 동일한 제목이 포함 된 이메일이 '[email protected]'로 전송됩니다.

이에 대해 Unixgeeks.org가 말하는 내용은 다음과 같습니다.

cron 의 출력

이전에 말했듯이 cron의 출력은 프로세스 소유자 또는 MAILTO 변수에 지정된 사람에게 메일로 전송되지만 원하지 않으면 어떻게해야합니까? 출력을 다른 사람에게 메일로 보내려면 출력을 명령 메일로 파이프하면됩니다. 예 :.

cmd | mail -s "메일 제목"사용자

때로는 stdout이 아닌 cronjob에서만 오류를 받고 싶기 때문에이 트릭을 사용합니다. 구문이 언뜻보기에는 잘못 보일 수 있지만 작동합니다. 다음 cronjob은 STDOUT을/dev/null로 보낸 다음 파이프 라인을 통해 STDERR을 처리합니다.

doit 2>&1 >/dev/null | mailx -s "$0" [email protected]

똑같은 일이지만 syslog로 보냅니다.

doit 2>&1 >/dev/null | /usr/bin/logger -t $ME

또한 ServerFault에 대한 내 답변을 참조하십시오 . Cronjob stderr to file and email

13
Stefan Lasiewski

보다 우아한 해결책은 /etc/cron.d를 직접 사용하는 것입니다. 스크립트를 /etc/cron.daily에 넣는 대신 /usr/local/sbin/myscript.sh와 같은 위치에 넣은 다음 /etc/cron.d/myscript 파일을 다음과 같이 만듭니다.

MAILTO=root,[email protected]
# run myscript.sh at 4:11 every day
11 4 * * * root /usr/local/sbin/myscript.sh

이것은 또한 작업이 발생하는시기에 대한 더 많은 제어를 제공합니다. 예를 들어 특정 평일에만 해당됩니다. 자세한 내용은 crontab(5) man을 참조하십시오.

6
codebeard

이 컴퓨터에 SA 액세스 권한이 있다고 가정하면 새 사용자 계정을 만들고이 계정 cron 작업에 작업을 추가 할 수 있습니다. 그런 다음이 사용자의 메일을 .forward 파일을 사용하여 전달할 수 있습니다. 이 계정 홈 폴더입니다. cron 작업에 권한있는 액세스가 필요한 경우이 사용자에 대한 권한을 설정해야 할 수 있습니다.

이것이 가장 적합한 지 Stefan의 대답이 가장 적합한 지 여부는 설정하는 데 얼마나 번거롭고 오류 메시지가 루트 이메일로 이동하길 원하는지 또는 일반적으로 매일 출력을 모니터링하는 사람들에게 전달되기를 원하는지에 달려 있습니다.

행운을 빕니다

0
Michael Shaw