Prenos dát z počítača do počítača

16.04 | 17:26 | Bežný život s Linuxom | mark

Každý sa s tým stretol. Počítače vymieňame, dáta skladujeme. Ultra vidlácky spôsob je nakopírovať dáta na USB kľúč alebo disk. Niekedy to nie je pravé orechové ...

... a to hneď z troch dôvodov:
  1. treba zohnať niečo dosť veľké na prenos,
  2. obvykle treba niekam upratať aj tie dáta na prenosnom médiu,
  3. medzipristátie dát na vymeniteľnom médiu oberá o čas.

V časoch WinXP som to riešil zdieľaným priečinkom. Myslím, že "najväčším" problémom bolo byť v tej istej pracovnej skupine (workgroup). Vždy som zabudol, kde sa to prestavuje. Nie som admin!

Pod Linuxom som to riešil vytvorením NFS serveru a pripojením sa naň. Prišlo mi to celkom pekné, len som si musel vždy napísať ťaháky. Čo čert nechcel, moje dáta sa nabaľovali, nabaľovali a až z nich bola guľa 180 000 súborov na cca. 200GB. Na tom som zistil, že NFS je dosť spomalené pri prenose malých súborov. A to už sa mi príliš nepáčilo. Začali vo mne bublať všetky tie antipočítačové hnevy. Taká jednoduchá vec preniesť dáta z bodu A do bodu B!

Situácia sa zopakovala. V práci som nechcel otravovať našich IT správcov s obmedzenými právami inými pod, hyper a nadsprávcami strategicky umiestnených po celom svete. Potreboval som z PC vo Windows zahltených doménovými politikami na bežnom účte skopírovať 120 000 súborov do PC, ktoré bolo z rozumných dôvodov bežne mimo sieť.

Kolega, (ex)správca a vytrvalý linuxový bojovník v C ++#, radil live distro a ssh. Z núdze vzniká efektivita ..., ale ssh to nebolo. Chýbal len predpripravený konfiguračný súbor.

Postup:

1. Prepojiť počítače sieťovým káblom. Novší hardvér pôjde nielen s kríženým, ale aj s patch káblom. (viď komentár o Auto MDI-X)

2. Nabootovať na obidvoch strojoch live Linux. Prihlásiť sa ako root.

3. Namontovať disky.

4. Nastaviť IP.

Príklad pre zdrojový počítač:

ifconfig eth0 192.100.1.10 netmask 255.255.255.0
ip addr change 192.100.1.10/24 dev eth0

Príklad pre cieľový počítač:

ifconfig eth0 192.100.1.2 netmask 255.255.255.0
ip addr change 192.100.1.2/24 dev eth0
Už len nezabudnúť na to, aby spojenie bolo aktívne:
ip link set eth0 up
ip address show dev eth0 

5. Zapnúť príjem na cieľovom počítači:

nc -l -p 1234 | tar -x

6. Zapnúť odosielanie zo zdrojového počítača:

tar -c --recursion nazovAdresara | nc - w 3 192.100.1.2 1234

Netcat príjma na porte 1234 a z rúry tar rozbaľuje do cieľového adresára. Vysielajúci stroj vytvára tar archív určeného adresára a z rúry netcat zasiela na cieľový stroj a port 1234.

Úžasné na tom je, že je to rýchlejšie na malých súboroch než NFS. U mňa prenos dát 50...100MB/s na 1Gbit/s spojení. Jediná habaďúra je tá, že sieťové spojenie treba držať v činnosti, inak sa mi po prenose vypína. Napr. zapnutím nejakej sieťovej služby.

Otázka do pléna: Ako (a prípadne jednoducho) obmedziť vypínanie neaktívneho sieťového spojenia?

    • RE: Prenos dát z počítača do počítača 16.04 | 20:04
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      Hmm aj po rokoch ifconfig, pozri si man k príkazu ip, ifconfig sa už len umelo udržiava pri živote.

      Najskôr ťa odpája NetworkManager, teda neviem akého správcu siete používaš. Pozri si, ako vypnúť NM pre interface.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Prenos dát z počítača do počítača 16.04 | 23:35
        Avatar mark   Používateľ

        Vďaka za tip ;)

        • RE: Prenos dát z počítača do počítača 10.05 | 10:52
          Avatar RUR   Návštevník

          Nestacilo by ping 192.100.1.2 ?

    • RE: Prenos dát z počítača do počítača 18.04 | 15:26
      Avatar czz   Návštevník

      Len technicka poznamka. Kabel uz dnes mozes pouzit aj klasicky, v podstate vsetky nove adaptery (v podstate akykolvek gigabit a vela 100Mbps zariadeni) zvladaju Auto MDI-X. Teda aby som bol presny, staci, ze to zvlada aspon jedna strana spojenia.

      K nastaveniu siete ti staci tusim 30s pockat, network manager nastavi link local adresu z 169.254.0.0/16 rozsahu po tom, co timeoutne nastavovanie cez DHCP. Potom bud pozries ip adresy tak ako si to urobil ty, alebo by tusim malo fungovat aj to, ze proste pouzijes mDNS .local adresu, cize nieco ako:

      tar -c --recursion nazovAdresara | nc - w 3 hostname_ciela.local 1234
      • RE: Prenos dát z počítača do počítača 18.04 | 23:45
        Avatar mark   Používateľ

        Automatické priradenie adresy som narýchlo otestoval. Ide mi to pod SLAXom. Pod Clonezillou a Debianom nie, ale nehľadal som príčinu. Zatiaľ nie som tak lenivý, aby som neopísal IPčku :) Ale ak by to fungovalo podľa tvojho popisu viacmenej všade bezbolestne, skrátilo by to postup a bolo by to plug and play!

      • RE: Prenos dát z počítača do počítača 23.04 | 22:39
        Avatar mark   Používateľ

        Patch kábel otestovaný. Ide to aj s ním :D

        http://www.hp.com/hpinfo/abouthp/iplicensing/automdix.html

    • RE: Prenos dát z počítača do počítača 24.04 | 12:40
      Avatar peter37   Návštevník
      Otázka do pléna: Ako (a prípadne jednoducho) obmedziť vypínanie neaktívneho sieťového spojenia?

      while true; do nc -l -p 1234 | tar -x; done
      

      by mohlo byt jednoduche, ale ucinne riesenie :-)

      OpenBSD netcat (dostupny aj na Linuxe) ma -k na prijatie nasledujucich pripojeni, ale s tar to bohuzial dobre nefunguje (zda sa, ze tar nechce prijat dalsi archiv na tom istom vstupe).

    • RE: Prenos dát z počítača do počítača 24.04 | 20:09
      Avatar WlaSaTy   Návštevník

      Nebolo by jednoduchšie použiť rsync cez ssh?

      • RE: Prenos dát z počítača do počítača 25.04 | 21:21
        Avatar mark   Používateľ

        Tento návod je vhodný pre situácie, keď núdzovo treba rýchlo prekopírovať veľa dát a vidí sa mi to ako vhodná alternatíva. Viď popis motivácie. Ostatné spôsoby nezatracujem, ale popísaný postup sa mi naozaj páči, a preto som o ňom napísal ;)

        • RE: Prenos dát z počítača do počítača 30.04 | 12:27
          Avatar WlaSaTy   Návštevník

          Jedna z vecí čo ma v posledných rokoch vytáčala na inštalácii desktopu bola, že som si musel doinštalovať ssh server. Je to pohodlnejšie ako šaškovať s netcat (ktorý tak isto nezvykne byť vo východzej inštalácii), a efektívnejšie ako využiť napríklad sshfs.

          Mal som podobnú motiváciu ako ty. Len s tým rozdielom, že som potreboval synchronizovať dáta. A na to je rsync vhodnejší.

          • RE: Prenos dát z počítača do počítača 01.05 | 10:07
            Avatar mark   Používateľ

            Áno, rsync je primárne na synchronizovanie dát a mal by byť v tom dobrý.

            Netcat som našiel defaultne v Debiane, v Slaxe, v Clonezille, v live Fedore. Čo používaš? Len zo zaujímavosti ...

            • RE: Prenos dát z počítača do počítača 08.05 | 16:28
              Avatar WlaSaTy   Návštevník

              Netcat je síce v bežných repozitároch pre uvedené distribúcie, ale obvykle nie je automaticky inštalovaný vo východzej inštalácii. Rovnako ako rsync.

              PS: Používam rôzne. Všetko závisí od požiadaviek, možností a potrieb.

    • RE: Prenos dát z počítača do počítača 26.06 | 21:00
      Avatar jancici   Návštevník

      Predpokldam ze tento navod je pre JEDNORAZOVY prenos dat. Ak je to tak tak sa mi to celkom pozdava.

      Ak to chces robit opakovane, teda na tych istych PC tak rsync je lepsi. Ja pouzivam SyncThing na viacerych PC a este na servery kde sa robi aj zaloha. Novy PC staci nastavit aby ho ostante PC poznali a po chvili mam vsetky data tam.

      • RE: Prenos dát z počítača do počítača 27.06 | 21:38
        Avatar mark   Používateľ

        Vďaka za pozitívny ohlas :) a aj za tip na SyncThing. Môj návod je pre núdzové jednorazovky, tak ako je popísané v článku.

    • RE: Prenos dát z počítača do počítača 10.07 | 00:12
      Avatar Slavomír Lubuntu  Používateľ

      Ja používam túto aplikáciu pre prenos súborov medzi PC (ubuntu) a mobilom, (funguje to aj medzi počítačmi). Funguje to super. Výborné pre začiatočníkov bez IT vedomostí http://www.msec.it/blog/?page_id=11

      Aplikácia Dukto r6

      • RE: Prenos dát z počítača do počítača 10.07 | 22:13
        Avatar mark   Používateľ

        Zaujímavý tip. Vyzerá to na prvý pohľad užitočne a pre širšiu skupinu ľudí, ako je môj návod. Občas mám dojem, že Google neposkytuje priestor pre informovanie ľudí, že existuje softvér, ako je dukto a iné. Len 2300 downloadov? Veď niečo také by malo byť v každom PC bez ohľadu, aký je tam OS. Keď bude čas, vyskúšam.

        Nevieš náhodou, ako je na tom výkonovo (cca 100000+ súborov a 100GB+)?

        • RE: Prenos dát z počítača do počítača 11.07 | 12:16
          Avatar Branislav Poldauf Arch (antergos), Debian stable  Používateľ

          niekde v komentároch alebo recenziách som čítal že DUKTO je vyrazne pomalsie ako myslím samba (60% rýchlosti) ale komentujúci to obišiel úpravou zdrojových kodov na takmer 90% rýchlosti samby

          Linux: the operating system with a CLUE... Command Line User Environment
        • RE: Prenos dát z počítača do počítača 11.07 | 23:12
          Avatar Slavomír Lubuntu  Používateľ

          Dukto som našiel tak, že som v Googli vyhľadával prenos súborov medzi Ubuntu a mobilom.

          Omnoho viac populárna aplikácia na prenos súborov je AirDroid a vyžaduje to prihlásenie https://www.airdroid.com/

        • RE: Prenos dát z počítača do počítača 12.07 | 06:29
          Avatar jancici   Návštevník

          preco nepouzivas ddg.gg ?

    • RE: Prenos dát z počítača do počítača 11.07 | 23:21
      Avatar Slavomír Lubuntu  Používateľ

      Toto sú stránky na prenos súborov cez webový prehliadač. Oboje pravdepodobne fungujú na báže WebRTC. Neviete na akom princípe to funguje? Ide to na priamo, alebo cez nejaký server?

      https://justbeamit.com/

      https://file.pizza/