У меня есть динамический DNS-скрипт следующим образом:
#!/bin/bash
curl -kL# "http://example.com/updatedns.php"
echo $? >> /var/log/ddns
... сохранен в / usr / local / bin / ddns. Очевидно, что вышеприведенный URL не тот, который я использую, но URL-адрес предназначен для установки записи A моего домена на IP-адрес запрашиваемой машины. Я подтвердил, что он был chmodded и работает из командной строки, однако Upstart, который был настроен со следующим скриптом:
start on network started
exec /usr/local/bin/ddns
... не выполняет его при запуске сети (который я предполагаю, когда машина загружается или я подключаю сетевой шнур).
I googled start on network started и нашел некоторые результаты, в которых говорится, что эта строфа фактически не запускается должным образом, но все равно запускается, однако я не уверен, что это связано или нет. Я делаю что-то неправильно? Я запускаю Ubuntu Server 11.10.
grep 'emit' /etc/network/if-up.d/upstart -a5
Предлагает вам, вероятно, использовать start on net-device-up.
Если у вас более одного устройства det (и у всех нет шлюзов), вы можете добавить аргумент в конец так, :
start on net-device-up IFACE=eth0
Традиционный метод (pre-upststart and still working) заключался в том, чтобы поместить скрипты в каталог /etc/network/if-up.d.
Обратите внимание, что Ubuntu имеет предварительно упакованные сценарии обновления DynDNS: я вижу dyndns, ddclient, inadyn, ez-ipupdate и ipcheck, упакованные в Ubuntu. Все должны работать:)