有什么方法可以强制 ddclient 在成功更新后运行某些脚本吗?无 IP 客户端有此功能,但我必须使用 dyndns 服务。
提前致谢。
答案1
这一页说您可以在中配置 postscript 参数ddclient.conf
:
postscript=/usr/local/sbin/do-it-after-ddclient-change.sh
答案2
答案3
IP 以参数形式给出。对于 Asterisk,我需要立即激活(已更改的)公共 IP,以便 Asterisk 可以确定其外部 IP。我通过使用后置脚本编辑 /etc/hosts 文件来实现此目的。将 sip.foo.net 替换为您自己的。
#!/bin/sh
#
# Update hosts file with changed IP
#
IP=$1
D=sip.foo.net
DOMAIN=`echo "$D" | sed 's/\./\\\\./g'`
sed -i_bak -e "/[\t]$DOMAIN/d" /etc/hosts
echo "$IP\t$D" >>/etc/hosts
答案4
@Rolando 对于 Asterisk,我需要立即激活(更改后的)公共 IP,以便 Asterisk 可以确定它的外部 IP。
简洁的 ddclient-post 脚本,用于将 IP 更新到 /etc/hosts(我尚未测试)
只是我认为 Asterisk 也需要这样的信息:
/etc/asterisk/sip_general_custom.conf icesupport=yes stunaddr=stun.l.google.com:19302 srvlookup=yes allowguest=yes ;externip=1.2.3.4 externhost=subdom.dom.tld localnet=192.168.0.0/16
但 Debian Sources 也有一个用于此的脚本(一个 ascii 文件)样本-etc_dhcpc_dhcpcd-eth0.exe该文件有一个“e”属性,可以在编辑/命名之前删除chattr -e sample-etc_dhcpc_dhcpcd-eth0.exe
之后chattr +e dhcpcd-eth0
显然,eth0 部分应该进行更改以匹配您的 iface ,当然也是chmod +x dhcpcd-eth0
为了使其可执行。