if up script pro dyndns

beer

  • *****
  • 729
    • Zobrazit profil
if up script pro dyndns
« kdy: 02. 04. 2017, 23:29:57 »
Vytvořil jsem si ifup script pro dynamické dns. Poraďte prosím proč nefunguje. Umístěný je v /etc/network/if-up.d/dynv6, práva má 755. Xubuntu 16.04 s network managerem a systemd.



Kód: [Vybrat]

#!/bin/bash
# Reload dynv6 when an interface comes up
PATH=/sbin:/usr/sbin:/bin:/usr/bin


ipv6=$(ip a | grep -s -i -o '200[1-2]\:[a-f0-9\.:]*' | head -n 1)
hostname="mojehostname.dynv6.net"
token="mojeheslo"




curl -m 30 "https://dynv6.com/api/update?hostname=$hostname&ipv6=$ipv6&token=$token"


exit 0


Když ho spustím ručně, tak funguje. Rád bych, aby se spustil vždy, když změním síť.


beer

  • *****
  • 729
    • Zobrazit profil
Re:if up script pro dyndns
« Odpověď #1 kdy: 03. 04. 2017, 12:02:35 »
ping

Ladislav Michl

Re:if up script pro dyndns
« Odpověď #2 kdy: 03. 04. 2017, 13:16:59 »
Pong. Pro začátek by stálo za to zjistit jestli "nefunguje" a pak budem řešit proč nebo jestli se nespustí.

beer

  • *****
  • 729
    • Zobrazit profil
Re:if up script pro dyndns
« Odpověď #3 kdy: 03. 04. 2017, 13:35:22 »
Nefunguje při změně wifi sítě. Zatímco, když je nainstalované miredo, a v souboru /etc/network/if-up.d/miredo jsem nahradil viz níže, tak to přes miredo fungovalo i při změně sítě. To, co jsem dával v prvním příspěvku reaguje možná jen na aktivaci rozhraní, a to ještě kdoví jestli, ale script se při změně wifi sítě nevykonná.

Kód: [Vybrat]
if [ "$ADDRFAM" = "ipx" ] || [ "$ADDRFAM" = "inet6" ]; then
exit 0
fi

za
Kód: [Vybrat]
if [ "$ADDRFAM" = "ipx" ] || [ "$ADDRFAM" = "inet6" ]; then
ip -6 route add default dev teredo;
ipv6=$(ip a | grep -s -i -o '200[1-2]\:[a-f0-9\.:]*' | head -n 1) && curl -m 30 "https://dynv6.com/api/update?hostname="mojehostname"&ipv6=$ipv6token="mojeheslo"; exit 0
fi