Blog
Dziwny pomysł na zdalną administrację
2006-02-04 18:46:14
Ponieważ mojemu routerowi (czyli temu komputerowi, który nabyłem za zabójczą cenę 50 zł i który dalej będę nazywał tym mianem) zdarza się miewać uptime rzędu kilku dni (a chodziłby dłużej, gdybym go po prostu nie wyłączał ;-)) i ponieważ zdarza się, że jestem poza domem, kiedy pracuje ten komputer chciałbym mieć jakąś prostą możliwość kontrolowania komputera zdalnie.
Do dyspozycji mam:
- telefon komórkowy posiadający przeglądarkę WML i XHTML
- router, który nie posiada zewnętrznego adresu IP
- zewnętrzny serwer HTTP z PHP i MySQL
- cron, PHP, MySQL, Perl i wszystko czego zapragnę na routerze
Na bezpośrednie połączenie telefonu komórkowego z routerem są marne szanse. Telefon ma dynamiczny adres IP, a router go nie pozna. Na dodatek telefon musiałby pełnić rolę serwera, a pisanie jakiegokolwiek oprogramowania w Javie, które by realizowało taką funkcję z pewnością mija się z celem. Czyli do połączenia routera z telefonem (a właściwie do przekazania pomiędzy nimi informacji) musi być jakiś pośrednik.
Cały system widzę następująco. Na zewnętrznym serwerze (dostępnym zarówno z routera jak i telefonu) umieszczam prosty skrypt z autoryzacją, służący za pośrednika. Pośrednik ten ma gromadzić w bazie danych (czy w jakikolwiek inny sposób) dyspozycje dla routera. Wydawanie dyspozycji ma następować przez przeglądarkę w telefonie komórkowym. Interfejs skryptu ma też pokazywać jakieś informacje o bieżącym stanie routera, procesów na nim uruchomionych itp.
Router co jakiś czas (i tutaj kłania się cron) powinien łączyć się z serwerem pośredniczącym i uaktualniać dane na temat aktualnego stanu routera, procesów itp. Powinien też pobierać dyspozycje i je wykonywać. Czyli wykonanie dyspozycji nie będzie natychmiastowe, ale opóźnione maksymalnie o czas powtarzalności procesu w cronie. Jest to niezbyt wielka niedogodność biorąc pod uwagę, że router nie jest komputerem o znaczeniu strategicznym ;-) Drugim problemem jest zawodność pośrednika. Jeśli serwer pośredniczący nie będzie działał (lub routerowi nie uda się połączyć z pośrednikiem, co na jedno wychodzi), z całej zdalnej kontroli nici. Ale z tym też trzeba się pogodzić.
Pomysł jest do zrealizowania. Niby to nic specjalnego, ale możliwość wyłączenia komputera w domu jadąc pociągiem to fajna rzecz. Cóż... Trzeba się będzie za to wziąć (oczywiście głowę powinienem mieć zajętą dużo ważniejszymi sprawami - na przykład poniedziałkowym egzaminem z Analogów ;-))
Komentarze
Przemek
2006-02-04 19:51:26
Mam wątpliwość, nie wiem czy infantylną, bo marnie znam się na linuksie. W jakim celu wyłącza się komputer jadąc pociągiem? :)
Mój router kupiłem na Allegro za 45 zeta i w sumie zależy mi żeby działał jak najdłużej. Niby mam publiczny ip, ale jak go zrestaruję po ssh to i tak nie wstanie bo ma campaqowego biosa. =/
Krzysiek
2006-02-04 20:19:44
To wyłączanie było tylko przykładem ;-) Chciałbym sprawdzić status ściągania jakiegoś pliku, sprawdzić jakość połączenia radiowego i masę innych rzeczy. Zrestartować też (bo sam potrafi wstać ;-))
Zadania, które może wykonywać są ograniczone właściwie tylko przez moją pomysłowość i umiejętności programistyczne ;-)
Justyncia16
2006-02-04 22:51:02
Spoko, fajne żarty:D:D:D:D Dobra, ja tu już Cię męczyć nie będę. Papapapapa
Adi
2006-02-04 23:30:41
Ech, te kobiety ;)
Przemek
2006-02-05 00:40:52
Rozumiem :]
Wcześniej skojarzyłem to wyłącznie z wydaniem jakiej komendy (np. reboot czegoś tam) bez wiedzy o stanie systemu. Jakoś nie pomyślałem, że cron sam sobie poszuka pracy, wykona ją i jeszcze wyniki wywali do np. jakiejś bazy MySQL na serwerze www, żeby dało się jego poczynania podziwiać z telefonu lub czegoś innego co ma przeglądarkę. ;)
D4
2006-02-19 17:26:42
hmm, może napisz w C++ czy jakimś innym program, który to sprawdzi i wyrzuci do pliku html jako elegancki tekst, a potem przeforwarduj port 80 z swojego kompa, bądź każ mu uaktualniać dane na jakimś zewnętrznym serwerze.
Krzysiek
2006-02-19 17:32:18
No, a o czym ja pisałem w tej notce? ;-)
Dodaj komentarz
