automatisk uppdatering av DNS med CURL & CRON

Permalänk
Medlem

automatisk uppdatering av DNS med CURL & CRON

jag blir tokig snart, halp!

jag har använt Lopias curlscript enligt:

Citat:

curl -s --user 'andreax.com:tjuryoghurt "http://dns.loopia.se/XDynDNSServer/XDynDNS.php?hostname=www.a..."`curl -s dns.loopia.se/checkip/checkip.php | sed 's/^.*: \([^<]*\).*$/\1/'` ; echo

och det funkar ju fint, tror jag ..men är ju helt meningslöst om det inte körs ibland också. så,

jag la till:

Citat:

59 * * * * /bin/./loopiadns.sh

i crontabs. men det funkade inte, och inte

Citat:

59 * * * * cd /bin/ ./loopiadns.sh

heller.. hur hundan ska det vara?

undrar även hur jag direkt adresserar subdomäner till andra kataloger än topp utan att ta till nån sekundär omdirigering om DNS använda? men det kanske inte är en ren fråga för denna forumdel iof..:0

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Medlem

Varför krånglar du till det så?
59 * * * * /bin/loopiadns.sh

förutsatt att loopiadns.sh ligger i just /bin

Permalänk
Medlem

ah, det är ju root som kör det givetvis ja..

prövar det, tack.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk

du kanske skulle köra med

59 * * * * sh /bin/loopiadns.sh

Eftersom att det inte är en binaryfil du kör

Permalänk
Medlem

nä-ä.

det vill bara inte köras så heller. men manuellt funkar det fint, scriptet både ändrar adressen och svarar när den inte behöver ändras. och cron kör ju också enligt vad burken säger.

vafan...

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Medlem

Varför inte bara kroka in scriptet i dhclients exit-hooks? Då körs det när DHCP omförhandlar adressen.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av NakedApe
Varför inte bara kroka in scriptet i dhclients exit-hooks?

Då körs det när DHCP omförhandlar adressen.

hmm.. jag fattar inte riktigt.

men jag tror inte det går ändå då jag kör med statiska IP internt och den enda DHCP jag befattar mig med är la hos Telia då, (?) och där lär jag ju inte få bråka heller, antar jag.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Citat:

Ursprungligen inskrivet av AndreaX
hmm.. jag fattar inte riktigt.

men jag tror inte det går ändå då jag kör med statiska IP internt och den enda DHCP jag befattar mig med är la hos Telia då, (?) och där lär jag ju inte få bråka heller, antar jag.

Nä precis, har du burken som uppdaterar domänen bakom en router så funkar det inte så bra att kroka i dhcp-klienten. Däremot om linuxburken är "ytterst" och får en publik ip-adress från telia så är det väldigt smidigt

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av AndreaX
hmm.. jag fattar inte riktigt.

men jag tror inte det går ändå då jag kör med statiska IP internt och den enda DHCP jag befattar mig med är la hos Telia då, (?) och där lär jag ju inte få bråka heller, antar jag.

Ah, I see...

Fattade som att du gjorde det från maskinen som (ev.) byter IP, då hade du kunnat köra uppdateringsskriptet som en del av din DHCP-klients omförhandlingsförlopp.

Borde ju dock funka från crontab. Har du en korrekt hashbang i din skriptfil etc?

Permalänk
Medlem

nejnej, det är bara domänens omdirigering till min server som ska göras. scriptet ifråga ligger alltså på den och ska köras lite då och då för att kolla om jag har fått en ny IP av Telia, servern skickar då den nya till Loopia som uppdaterar IP till servern. var det tänkt alltså.

Citat:

Ursprungligen inskrivet av NakedApe
hashbang

mer Grekiska, eller iof låter det mer som Danska för noja av att röka holk eller nått.

men du menar alltså att cronstartarens rad bör köra scriptet i ett angivet skalläge eller så? för själva scriptet funkar ju som sagt.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Hedersmedlem

Här är iaf mitt script som jag kör i cron för att uppdatera:

#!/bin/bash # eth0, eller vad du nu har här, telia heter mitt interface INT=telia function update { # # Kör curl eller liknande här... # echo Updated NEWIP=`/sbin/ifconfig ${INT} | grep 'inet addr\:' | awk '{ print $2 }' | sed 's/addr\://g' | tr -d '\n'` echo $NEWIP > /etc/dynip/lastip.${INT} } if [ -z "`/sbin/ifconfig ${INT} | grep UP`" ] then exit else IP=`/sbin/ifconfig ${INT} | grep 'inet addr\:' | awk '{ print $2 }' | sed 's/addr\://g' | tr -d '\n'` if [ ! -z /etc/dynip/lastip.${INT} ] then LASTIP=`/bin/cat /etc/dynip/lastip.${INT} | tr -d '\n'` echo "Last IP $LASTIP" echo "Current IP $IP" fi if [ -z "$LASTIP" ] then echo no file found update exit fi if [ "$LASTIP" = "$IP" ] then exit else echo new ip detected update exit fi fi

Som du ser måste det ligga i /etc/dynip om man inte ändrar något.
Jag kör det här för att vara snäll mot min DNS-provider, det känns dumt att skicka uppdateringar var 10:e minut eller så, nu kollar den var femte (via cron förstås) och skickar bara när det verkligen behövs.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200