标题问题说明了一切。我构建了一台运行 Ubuntu 9.10 Desktop (AMD 64) 的机器,需要它在启动时将其 IP 地址通过电子邮件发送到电子邮件地址列表。
答案1
当网络接口启动时,脚本/etc/network/if-up.d
就会运行。执行脚本时会提供许多环境变量,包括 IP 地址和其他网络参数。编写一个 if-up 脚本发送包含所需信息的电子邮件应该非常容易。
我认为动态 DNS 更新可能更有用然后发送一封电子邮件,但也许您还有一些未提及的原因。
这是我的一个旧脚本,它所做的事情与你想要的接近。
/etc/default/if_notify
# interface definitions
IF_OUT='eth0'
EMAIL_OUT='[email protected]'
MSG_OUT_UP='outside interface is up. Address is:'
/etc/network/if-up.d/if_notify
#!/bin/bash
[ ! -x /etc/default/if_notify ] || exit 0
. /etc/default/if_notify
NAME=`hostname -f`
if [ "$IFACE" = "$IF_OUT" -a "$MODE" = "start" ] ; then
if [ "$IF_IN" -a "$MSG_OUT_UP" -a "$EMAIL_OUT" ] ; then
IFACE="outside"
MSG="$MSG_OUT_UP $IF_ADDRESS"
ADDR="$EMAIL_OUT"
fi
fi
if [ "$IFACE" -a "$MSG" -a "$ADDR" ] ; then
echo -e "From:root@$NAME\nTo:$ADDR\nSubject:[IFNOTIFY] Interface $IFACE up on $NAME\n$MSG" \
| sendmail -f root "$ADDR"
fi