Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: jany 26 Října 2010, 13:05:09
-
Najprv napisem, ze som uplny laik v problematike programovania a skriptovania, nikdy v zivote som nic nenapisal :'(
Mam ADSL linku s dinamickou verejnou IP adresou.
Mam modem asus, nastaveny v mode bridge ktory je napojeny na hlavny router so systemom mikrotik (MK)
Zrejme by sa taky skript dal prevazkovat aj na (MK), ale radsej by som to mal na PC s linuxom.
V sieti mam ubuntu server 9.04.
Predstavoval by som si to tak:
1."ze ten skript sa musi dostat" na MK na WAN rozhranie
2. checkne IP adresu
3. ak sa nezmenila, tak neurobi nic
4. ak sa zmenila, tak zapise novu do suboru aj s datumom a casom, kedy bola zmenena
5. skript by sa mohol spustat raz za 5-10 min
Je mozne take nieco spravit ? a ak ano, poradil by niekto ?
-
a co potrebujes, public ip? proc to potrebujes zapisovat? nestaci ti neco jako
http://starenka.net/ip
http://starenka.net/ip/?out=json
http://starenka.net/ip/?out=xml
?
-
Nebylo by jednodušší napsat čeho chceš dosáhnout?
-
Nebylo by jednodušší napsat čeho chceš dosáhnout?
No uz som to popisal v prvom prispevku.
1.Takze IP a cas by uz bol vyrieseny http://jany.wz.cz/ip_address.php
2. Teraz potrebujem skript, ktory na tejto stranke preveri IP a ulozi do suboru (ak sa IP nezmenila, tak nic, ak sa zmenila, nech zapise do dalsieho riadku novu aj s casom)
-
Třeba takto:
n=`wget -O - http://jany.wz.cz/ip_address.php`; [[ `echo $n|awk '{print $1}'` == `cat file|awk 'END{print $1}'` ]] || echo $n >> file
-
Co ak http://jany.wz.cz/ip_address.php prestane fungovat?
-
Co ak http://jany.wz.cz/ip_address.php prestane fungovat?
jany si bude muset přečíst nějaký ten manuál a ošetřit si výjimky :)
-
nechces uz konecne napsat o co ti jde? na co potrebujes historii svojich ip?
-
nechces uz konecne napsat o co ti jde? na co potrebujes historii svojich ip?
Nejde mi o nic. Jednoducho sa chcem trocha naucit pisat skripty, tak som si zadal takuto ulohu (sam, sebe). :)
Tento skript od GdH
n=`wget -O - http://jany.wz.cz/ip_address.php`; [[ `echo $n|awk '{print $1}'` == `cat a|awk 'END{print $1}'` ]] || echo $n >> file
funguje dobre, ale zapisuje aj ked sa IP nezmeni, to by nevadilo.
Skusal som to zapisat do cronu, ale nejak to nefunguje.
Takze do /etc/crontab som si vlozil riadok
*/2 * * * * /usr/bin/ip_address.sh
A v /usr/bin/ip_address.sh mam toto
#!/bin/sh
n=`wget -O - http://jany.wz.cz/ip_address.php`; [[ `echo $n|awk '{print $1}'` == `cat a|awk 'END{print $1}'` ]] || echo $n >> /home/jany/ip.log
ale nezapisuje sa nic
-
Zapisovat by to mělo pouze pokud se adresa změní, mně to tak funguje. Samozřejmě poprvé zapíše vždy, neb nemá s čím porovnávat. Cron se edituje pomocí příkazu crontab -e, pro aktuálně přihlášeného uživatele. Jinak k tomu wgetu si přidej zmíněný přepínač -q, ať zbytečně nevypisuje, když se na to stejně nikdo nedívá a skript bych začal #!/bin/bash, protože pro dash jsem to nepsal, neznám ho, nemusí to fungovat.
Edit: v tom mém skriptu jsem zapoměl přepsat u cat název souboru, a je můj zkušební, takže sorry.