在成功的ddclient更新中运行脚本

有没有办法强制ddclient运行一些成功的更新脚本? 没有IP客户端有这个function,但我必须使用dyndns服务。

提前致谢。

这个页面说你可以在ddclient.confconfiguration一个postscript参数:

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

我没有使用这个选项,但ddclient确实有一个postscript选项。 根据文档,ddclient将运行postscript选项中指定的脚本,传入新的IP。 在ddclient Perl代码中偷看脚本通过system()调用。

IP是作为论据给出的。 对于Asterisk,我需要(更改的)公共IP立即生效,以便Asterisk可以确定它是外部IP。 我通过使用post脚本编辑/ etc / hosts文件来完成这个任务。 用你自己的replacesip.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