Запустить скрипт при успешном обновлении ddclient
Есть ли способ заставить ddclient запустить какой-либо скрипт при успешном обновлении? У клиента без IP такая возможность есть, но я должен использовать сервис dyndns.
Заранее спасибо.
4 ответа
На этой странице сказано, что вы можете настроить параметр postscript в ddclient.conf
:
postscript=/usr/local/sbin/do-it-after-ddclient-change.sh
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
чтобы сделать его исполняемым.