Запустить скрипт при успешном обновлении ddclient

Есть ли способ заставить ddclient запустить какой-либо скрипт при успешном обновлении? У клиента без IP такая возможность есть, но я должен использовать сервис dyndns.

Заранее спасибо.

4 ответа

На этой странице сказано, что вы можете настроить параметр postscript в ddclient.conf:

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

Я не использовал эту опцию, но у ddclient есть опция postscript. Согласно документации, ddclient запустит скрипт, указанный в опции postscript, с передачей нового IP. Вглядываясь в код Perl ddclient, скрипт вызывается через system ().

IP указывается в качестве аргумента. Для Asterisk мне нужно, чтобы (измененный) публичный IP-адрес был активирован немедленно, чтобы Asterisk мог определить его внешний IP-адрес. Я сделал это, отредактировав файл /etc/hosts с помощью сценария post. Замените 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

@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-файл) для этого sample-etc_dhcpc_dhcpcd-eth0.exe. Файл имеет атрибут «e», который можно удалить перед редактированием/именованием с помощьюchattr -e sample-etc_dhcpc_dhcpcd-eth0.exe

и после сchattr +e dhcpcd-eth0

очевидно, часть eth0 должна быть изменена в соответствии с вашим iface, и, конечно же,chmod +x dhcpcd-eth0чтобы сделать его исполняемым.

Другие вопросы по тегам