서버가 다시 시작되면 나에게 메일을 보내고 싶습니다. AWS를 사용하고 다시 시작하면 내부 10.xxx 주소가 변경됩니다. 이 주소는 Postgres 및 다른 곳에서 구성되어야 하며 이는 좋은 알림이 될 것입니다.
이 솔루션을 찾았지만 시도할 때 메일이 설치되지 않음 오류가 발생합니다. Sendmail/postfix가 설치됩니다.
@reboot echo "Server has restarted "`hostname` | mail -s "System Restart" [email protected]
mail-utils를 설치해야 합니까, 아니면 다른 솔루션 없이 설치할 수 있습니까?
답변1
이 오류는 단순히 메일 패키지가 설치되지 않았거나 메일 스크립트가 시스템에 존재하지 않음을 의미합니다.
이 문제를 해결하려면 배포판에 따라 설치 mailx
하거나 패키지하십시오 .mailutils
CentOS
질문에 태그를 지정했으므로 패키지를 설치해야 합니다 mailx
.
$ sudo yum install mailx
Mailx는 POSIX mailx 명령과 그 파생물인 SysV mail 및 Berkeley Mail의 기능을 제공하는 향상된 메일 명령입니다. 그러나 Mailutils는 이메일을 전달하고 읽는 데 유용한 메일 라이브러리, 데몬, 클라이언트 및 서버 세트를 제공합니다.
Mailx는 RHEL, CentOS, Scientific Linux 또는 그 변형에서 사용할 수 있습니다. 그러나 Mailutils는 이메일을 전달하고 읽는 데 유용한 메일 라이브러리, 데몬, 클라이언트 및 서버 세트를 제공합니다. Mailutils는 Debian, Ubuntu 또는 그 변형에서 사용할 수 있습니다.
확인하다이 링크그것에 대한 추가 정보.
답변2
Debian/Ubuntu에서 이메일을 보내려면 bsd-mailx 패키지를 설치해야 합니다.
위 명령은 어디에 추가되었나요? 이메일이 전송되지 않은 데에는 세 가지 이유가 있을 수 있습니다.
- 명령이 전혀 실행되지 않습니다(실행되도록 하려면 /etc/rc.local에 추가하세요).
- bsd-mailx 패키지가 설치되지 않았습니다
- bsd-mailx 구성을 깨뜨린 일부 MTA를 설치하려고 했습니다.
답변3
sendmail을 사용하여 직접 이메일을 보낼 수 있습니다.
사용자 정의 쉘 스크립트를 사용하면 "더 깔끔해집니다".
crontab이 사용자 정의 스크립트를 실행하도록 허용
@reboot .../reboot-notify
스크립트에서 sendmail을 직접 사용하도록 하세요.
간단한 스크립트(예: IP 주소가 변경되었는지 확인하도록 할 수 있음)
#!/bin/sh
HOSTNAME=`hostname`
/usr/sbin/sendmail -i [email protected] <<END
Subject: System restart
Server has restarted: $HOSTNAME
END