我有一个在 Docker 容器内运行的备份脚本,我希望它在磁盘使用率较低时向我发送一封电子邮件。
脚本如下:
#!/bin/bash
CURRENT=$(df /data | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90
echo "$CURRENT"
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
echo "Low Disk Space Alert: ${CURRENT}% used"
mail -s 'Disk Space Alert' [email protected] << EOF
Backup server remaining free space is critically low. Used: $CURRENT%
EOF
fi
问题是我无法让邮件在容器内工作。这是我的 Docker 文件:
FROM ubuntu:latest
MAINTAINER [email protected]
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y postfix && \
apt-get install -y mailutils && \
apt-get clean
ADD rootfs /
CMD /disk-alert.sh
我尝试了一些方法,但我能做的最好的就是让邮件命令顺利完成而没有错误(尽管我没有收到任何电子邮件)。
有没有简单的方法可以配置我的容器以便能够发送邮件?只要我收到邮件,我不在乎它是否被归为垃圾邮件。
答案1
答案2
考虑从 Amazon SES 或 MailGun 或任何其他基于 HTTP 的邮件 API 发送电子邮件,而不是将整个 MTA 添加到您的容器中。
或者向警报系统(例如 OpsGenie 或 PagerDuty)发出 API 调用。