Onlinechanged
Dieses Feature ist ab r2850 (trunk) in Freetz und wurde implementiert weil AVM in der Firmware 54.04.67 das Verhalten von /bin/onlinechanged geändert hat. Bisher handelte sich bei /bin/onlinechanged um ein Symlink auf das Skript /var/tmp/onlinechanged. Die Entstehung kann in Ticket #271 (#271) nachverfolgt werden.
Um das Verhalten zu vereinheitlichen gilt ab r2850 für /bin/onlinechanged: Beim Wechsel des Online Status wird das Skript vom multid mit online bzw. offline als Parameter aufgerufen und ruft dann selbst folgende Skripte auf:
1. | /var/tmp/onlinechanged | Kompatibilität zum alten Verhalten |
2. | /etc/onlinechanged/* | neues AVM Verhalten |
3. | /tmp/flash/onlinechanged/* | Skripte im Freetz Flash |
Ein Skript in /etc/onlinechanged könnte zum Beispiel folgendermaßen aussehen:
#!/bin/sh case "$1" in online ) /etc/init.d/rc.package online ;; offline ) /etc/init.d/rc.package offline ;; esac
An application: update external IP-address for dnsd:
EXTIP="`/usr/bin/get_ip -d`" sed "s/#EXTIP#/$EXTIP/g"</tmp/flash/dnsd/dnsd_template.conf >/tmp/flash/dnsd/dnsd.conf modsave /etc/init.d/rc.dnsd restart logger -t dnsd "IP set to $EXTIP"