#!/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
当网络接口启动时,脚本
/etc/network/if-up.d
会运行。执行脚本时会提供许多环境变量,包括 IP 地址和其他网络参数。为自己编写一个 if-up 脚本应该很容易,该脚本会发送一封包含您想要的信息的电子邮件。我认为进行动态 dns 更新可能比电子邮件更有用,但也许你有一些你没有提到的原因。
这是我的一个旧脚本,它做了一些接近你想要的东西。
/etc/default/if_notify
/etc/network/if-up.d/if_notify