Ściągamy pliki bez komputera

W ostatnim odcinku podłączyłem dysk do routera (Dir-320 z DD-WRT), więc przyszła pora przyjrzeć się możliwością wykorzystania go do transferu plików. Rozwiązanie jest bardzo wygodne – ustawiamy co ma się ściągnąć, wyłączamy komputer, a router ściąga co trzeba, choćby i dwa dni. 320GB na dysku daje jednak spore możliwości, jeżeli mamy skąd i co ściągać.

Scp i rsync

Pierwsze co zacząłem ściągać (a właściwie wysyłać z serwera) to kopie zapasowe i logi. Wykorzystuję do tego dwa mechanizmy – scp i rsync. Przypominam, że założeniem jest, że zachowujemy maksimum bezpieczeństwa i wystawiamy tylko jeden port dla ssh, stąd dla połączeń inicjowanych z zewnątrz scp i rsync przez ssh są idealne. Może nie jest to najprostsza opcja, więc jeżeli kogoś interesuje tylko ftp i torrent, to może spokojnie pominąć kilka akapitów. Co będzie potrzebne? Z pewnością trzeba doinstalować rsync:

/opt/bin/ipkg install rsync

Mamy co trzeba, zacznijmy od kopiowania plików z serwera przez scp. Możemy to robić podając hasło, jednak to nie do końca nas satysfakcjonuje. Backup ma być przesyłany w nocy, automatycznie, więc podawanie hasła nie będzie możliwe. Musimy więc zadbać o to, żeby klucz publiczny ssh użytkownika (na serwerze), który będzie wysyłał pliki został zapisany w polu Authorized Keys zakładki Services/Services w interfejsie web naszego routera. To pozwoli łączyć się przez ssh (a co za tym idzie przez scp) bez podawania hasła, oczywiście jeżeli klucz nie ma hasła. Oczywiście klucze bez hasła nie są dobrym pomysłem, gdy nie mamy pełnego zaufania do tego co się dzieje na serwerze. Załóżmy jednak, że mamy.

Wszystko gotowe, można zaczynać. Pamiętamy, że nasze ssh jest widoczne z zewnątrz na porcie 443, chcemy użyć użytkownika root (może nie najlepszy pomysł, ale zmienimy to z czasem), a po drugiej stronie używamy użytkownika, który rootem nie jest (to byłoby już przegięcie). Proste kopiowanie pliku wykonujemy przez wywołanie na serwerze:

scp -P 443 plik.txt root@mojrouter.dyndns.org:/mmc/

Dzięki czemu plik.txt powędruje wprost do naszego routera. Jeżeli klucz ssh został wklejony poprawnie, nie powinniśmy zostać zapytani o hasło. Ja wcześniej przygotowaną kopię stron www z pliku www.tgz kopiuję do pliku, którego nazwa zaczyna się od daty (żeby kolejne kopie nie nadpisywały się):

scp -P 443 /kopia/www.tgz root@mojrouter.dyndns.org:/mmc/backup/serwer/`date +%Y%m%d`www.tgz

Proste, prawda? Z rsync nie jest wcale trudniej. Ponieważ mamy na naszym Dir-320 zainstalowanego już rsynca, więc możemy zsynchronizować katalog z logami:

rsync -v -r -e "ssh -p443" /kopia/logi/ root@mojrouter.dyndns.org:/mmc/backup/serwer/logi/

Prsote, działa sprawnie, w pełni automatycznie. Czasem trzeba tylko przegrać z dysku routera dane np. na płyty DVD. Oczywiście nie jest to rozwiązanie dla poważnych serwerów produkcyjnych, ani nawet pomysł na jedyną kopię bezpieczeństwa dla mniej ważnego serwera, ale dla administratora zarządzającego małym serwerem zdalnie lokalna kopia części danych czy logów może być nieoceniona.

FTP i torrent

Na początku naszej zabawy zainstalowaliśmy świetnego klienta FTP – ncftp. Teraz trochę uzupełnimy listę programów i dołożymy do tego screen i rtorrent. Dla mniej obytych z Linuksem i Uniksami, screen to program pozwalający zarządzać kilkoma sesjami/ekranami, w których uruchamiamy programy, przełączanie się między nimi, a także zostawienie uruchomionych programów po wylogowaniu się. Nieodzowne, żeby włączyć ściąganie plików i pozostawić je po wyłączeniu komputera, a zawsze móc zajrzeć i wydać dodatkowe polecenia. Rtorrent jest natomiast dobrym, tekstowym klientem torrent.

Uruchamiamy więc polecenie screen i… pozornie nic się nie zmienia, mamy sesję shella. Sprawdźmy jednak czy się uruchomił – wciskamy Ctrl+A a następnie ?. Powinien wyświetlić się ekran pomocy – z listą poleceń. Jest? Ok. Enter i znika. Aby otworzyć nowy ekran z shellem naciskamy Ctrl+A, C. Żeby przełączać się między ekranami używamy Ctrl+A, N. A żeby pozostawić sesję screena w tle, aby móc się wylogować wciskamy Ctrl+A, D, po czym uzyskujemy informację [detached]. Aby powrócić do naszych programów, np. po ponownym zalogowaniu, wydajemy komendę screen -r i już powinniśmy móc przełączać się między ekranami. Po paru użyciach łatwe oraz bardzo wygodne i skuteczne.

Cóż więc szkodzi teraz pod sesją screena uruchomić ncftp?

cd /mmc
ncftp ftp.task.gda.pl

ncftp nazwą serwera jako jedyną opcją zaloguje nas jako anonymous. Możemy odnaleźć potrzebny plik (przydadzą się komendy cd, ls, pwd), a potem go zacząć ściągać (get, mget). Plik zaczyna się ściągać, a my robimy detach (Ctrl+A, D) i już możemy się wylogować i pójść na piwo. Po powrocie sprawdzimy tylko czy wszystko się ściągnęło.

Z torrentem wcale nie jest trudniej. W sesji screena przechodzimy do katalogu /mmc (lub innego, gdzie chcemy ściągać pliki) i wywołujemy polecenie rtorrent. Uruchomi się, wbrew pozorom, prosty w obsłudze program o całkiem dużych możliwościach. Jak zacząć ściągać? Prosto, załóżmy, że mamy link do pliku torrent, np. do Fedory w wersji 11. Link znaleziony na oficjalnej stronie projektu. Wciskamy więc backspace i wpisujemy: http://torrent.fedoraproject.org/torrents//Fedora-11-x86_64-DVD.torrent, po czym wciskamy Enter. Torrent jest ściągany ze strony www a zadanie ściągnięcia obrazu płyty trafia do kolejki.

Teraz nasz router jest naprawdę przydatny i wykonuje wiele zadań, które wcześniej powierzaliśmy prądożernemu komputerowi. A to jeszcze nie koniec…

Ten wpis został opublikowany w kategorii Uncategorized i oznaczony tagami , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

0 odpowiedzi na Ściągamy pliki bez komputera

  1. Luke pisze:

    Witam,

    Bardzo fajna seria opisów.
    Zastanawiam się nad zakupem tego routera.
    Dość istotną sprawą dla mnie jest możliwość zestawienia VPN’a DIR-320 DIR-320 i Vista DIR-320. Ze względów bezpieczeństwa odpada PPTP. Czy na opisywanej wersji DD-WRT można uruchomić OpenVPN ? Na wiki znalazłem informację, że powinna to być specjalny „build” _vpn. Kiedy można się spodziewać opisu 🙂

    Pozdrawiam,
    Łukasz

    • techniczny pisze:

      Tak, ja używam OpenVPNa. Różnica między dystrybucją VPN jest taka, że ja mam go zainstalowanego na nośniku USB (dysku, ale działał też na pendrive) i jego obsługa nie jest wbudowana w interfejs www.
      Pewnie opiszę jak to działa, ale na razie brakuje mi trochę czasu…

  2. Andrzej pisze:

    Ja chętnie dowiedziałbym się, jak hostować pliki na routerze, tak aby mieć dostęp do nich z zewnątrz: serwer ftp lub http. Gdyby udało się wrzucić php na router, to byłoby całkiem idealnie 🙂

    Dzięki, że dzielisz się wiedzą 🙂

  3. BJJfan pisze:

    Ja natomiast ze zniecierpliwieniem czekam na opis konfiguracji serwera wydruku 🙂

    Pozdrawiam

  4. mrl pisze:

    Opis serwera wydruku (dzialajacy) dostepny na http://sites.google.com/site/wl520gu/

    Sterownik dostarczony przez dd wrt u mnie nie zadzialal jest podobno przestazaly, dlatego zamiescilem w/w poradnik.

    Orginalne HOWTO dostepne tutaj http://www.dd-wrt.com/wiki/index.php/Printer_Sharing

  5. Sławek pisze:

    Ja również bardzo chętnie zapoznałbym się z opisem tego jak uruchomić serwer wydruku, gdyż moje próby zrobienia tego na asusie RT-N16 z zainstalowanym Optware nie zakończyły się pomyślnie 🙁

  6. kk pisze:

    Dzięki za opis możliwości routera, które są naprawdę spore. Myślę że podjąłem decyzję co do kupna.
    Nie ma to jak zalogować się na takie urządzenie przez ssh – nie mogę się doczekać kiedy będę mógł zdalnie konfigurować lodówkę 🙂

  7. fza pisze:

    Witam,
    Kawał dobrej roboty. Podziwiam i dziękuję za ciekawe opisy.
    Chciałem zapytać przy okazji o transfery DYSK-USB-LAN.
    Ideałem byłoby 12,5MBps czyli max dla LANu.
    Na takiej podstawie można by spokojnie zastąpić udostępnianie przez sieć 100Mbps za pomocą PCta na DIR-320 z dyskiem.

  8. K3nNy pisze:

    Również prosił bym o jakiś opis do serwera druku 🙂

  9. BJJfan pisze:

    http://sites.google.com/site/wl520gu/ jest to opis konfiguracji serwera wydruku.

    Wykorzystana jest tam paczka dla openwrt gdyz z jakiegos powodu ta dla dd wrt nie dziala.

    U mnie smiga doskonale, w cupsach trzeba wybrac AppSocket/HP JetDirect, natomiast URL urządzenia to socket://192.168.1.1:9100 (zamiast 192.168.1.1 dajecie adres waszego routera – dla dd wrt domyslny jest wlasnie ten)

    Opis konfiguracji drukarki ba windowsie rowniez w linku

    • Sławek pisze:

      W opisie jest rozbieżność w tym co pobieramy przez wget, a tym co instalujemy. Który z pakietów jest tym właściwym?

  10. Dominik pisze:

    Witam
    A czy jest możliwość dogrania jakiejś paczki, managera pobierania etc? Takiego, w którym ustawie sobie kolejkę do rapidshare i oczywiście autoryzacje do tegoż serwera?
    Świetny blog!

    • techniczny pisze:

      Managera nie znam, ale z RS (konta komercyjnego) można pobierać wgetem. Istnieje możliwość np. ustawienia zadania w cronie, żeby rozpoczynał ściąganie podczas happy hours (RS liczy 10% limitu między godziną 2 a 10). Linki zapisuje się wtedy w pliku tekstowym, a prosty skrypt robi resztę.

      • Dominik pisze:

        o to właśnie mi chodziło? 🙂 A może posiadasz taki skrypt i mógłbyś go udostępnić ? A może mógłbyś dopisać dodatkowy akapit do tego tematu właśnie z opisem pobierania z RS, sądzę, że nie tylko ja bym skorzystał na takim opisie.
        Pozdrawiam.

      • techniczny pisze:

        W wolnej chwili napiszę kilka słów na ten temat.

  11. Dominik pisze:

    super, dzięki 🙂

  12. micozi pisze:

    Witam
    mam następujący problem, po instalacji screen’a i wywołaniu go otrzymuję:

    screen: can’t resolve symbol 'setlocale’

    bardzo proszę o pomoc w rozwiązaniu problemu

  13. micozi pisze:

    ok udało mi się to naprawić, wystarczyło wyczyścić jffs i nie instalować przez ipkg tylko przez ipkg-opt 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *