Oli*_*nde 7 email ubuntu docker
我有一个在 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' olalonde@gmail.com << EOF
Backup server remaining free space is critically low. Used: $CURRENT%
EOF
fi
Run Code Online (Sandbox Code Playgroud)
问题是我无法让邮件在容器内工作。这是我的 Docker 文件:
FROM ubuntu:latest
MAINTAINER olalonde@gmail.com
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
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些事情,但我能做的最好的事情就是让邮件命令无误地完成(尽管我没有收到任何电子邮件)。
有没有一种简单的方法来配置我的容器以便能够发送邮件?只要我收到邮件,我不在乎邮件是否会变成垃圾邮件。
小智 5
正如 Jason 已经提到的,我认为将 MTA 和备份容器分开确实更干净。
我前段时间遇到了这个问题(虽然我尝试从 PHP 而不是 bash 发送邮件),我发现了exim-sender容器,它基本上是一个简单的容器,充当外发 SMTP 服务器。
为什么不将您的备份容器链接到这样的 SMTP 容器?如果您随后使用 ssmtp,则可以通过 SMTP 容器发送邮件。或者,如果您愿意,也可以使用另一个(外部)SMTP 服务器。
考虑从 Amazon SES 或 MailGun 或任何其他基于 HTTP 的邮件 API 等发送电子邮件,而不是将整个 MTA 添加到容器中。
或者对 OpsGenie 或 PagerDuty 等警报系统进行 API 调用。
归档时间: |
|
查看次数: |
21401 次 |
最近记录: |