之后chattr +e dhcpcd-eth0

之后chattr +e dhcpcd-eth0

有什么方法可以强制 ddclient 在成功更新后运行某些脚本吗?无 IP 客户端有此功能,但我必须使用 dyndns 服务。

提前致谢。

答案1

这一页说您可以在中配置 postscript 参数ddclient.conf

postscript=/usr/local/sbin/do-it-after-ddclient-change.sh

答案2

我没有用过这个选项,但是dd客户端确实有一个 postscript 选项。根据文档,ddclient 将运行 postscript 选项中指定的脚本,并传入新 IP。查看 ddclient Perl 代码,该脚本通过以下方式调用系统()

答案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为了使其可执行。

相关内容