Prosty transfer plików

17

Biorąc pod uwagę dwa urządzenia Linux w sieci LAN, jaki jest najprostszy sposób przesyłania plików między nimi?

David Thornley
źródło

Odpowiedzi:

22

Używam scp.

scp source desthost:/path/to/dest/.

aby skopiować z komputera lokalnego na komputer zdalny lub

scp srchost:/path/to/file/file .

aby skopiować z komputera zdalnego na komputer lokalny.

Jeśli nazwa użytkownika nie jest taka sama na zdalnym komputerze,

scp user@srchost:/path/to/file/file .
KeithB
źródło
3
Dodałbym, że możesz użyć opcji -r z scp, aby rekurencyjnie skopiować cały katalog scp -r źródłowy desthost: / path / to / dest /
Steve Burdine
1
@ Steve_ Dobra uwaga. Również -C kompresuje pliki podczas ich przesyłania, co może pomóc w przypadku wolnych linków.
KeithB
To albo scpczy rsyncdla mnie.
Josh K
6

Zazwyczaj montuję katalog przez ssh przez FUSE i sshfs.

Uchwyt:

$ sshfs name@server:/path/to/dir /path/to/mount/point

Odmontuj:

$ fusermount -u /path/to/mount/point
Maik
źródło
5

Używam netcat (jeśli nie potrzebuję bezpieczeństwa)

nc -l -p 1234 < send_file   # 'server'
nc x.y.z.t 1234 > receive_file  # 'client'
nc3b
źródło
2
Szczególnie podoba mi się to połączenie:tar -c files and folders/ |pv -cN in|lzop|pv -cN out|nc x.y.z.t 1234
JPC
5

NFS może być przydatne.

Network File System (NFS) umożliwia węzłowi klienta wykonywanie przezroczystego dostępu do plików przez sieć. Korzystając z NFS, węzeł klienta działa na plikach znajdujących się na różnych serwerach i architekturach serwerów oraz w różnych systemach operacyjnych. Wywołania dostępu do plików na kliencie (takie jak żądania odczytu) są konwertowane na żądania protokołu NFS i wysyłane do systemu serwera przez sieć.

Możesz potrzebować pomocy administratora Unixa, aby skonfigurować go za pierwszym razem, ale jest to bardzo przydatne.

Hemant
źródło
W przypadku szybkich przelewów * nix-to- * nix nic nie jest bliskie NFS. Dobry administrator może podkręcić oba urządzenia i wykonać przelewy w mniej niż 5 minut, jest prawie przezroczysty dla reszty systemu, jest dobrze znany i stabilny. +1 za coś, co nie wymaga wyrzucania linii poleceń za każdym razem, aby coś przenieść.
Avery Payne,
2

Do jednorazowych transferów plików zwykle używam SFTP lub istniejącego udziału samby.

Aby zachować synchronizację, sugeruję wypróbowanie rsync lub unison (dla synchronizacji 2-kierunkowej)

Edycja: scp byłoby lepiej sftp, ponieważ działałoby na wszystkich hostach obsługujących SSH

Gert
źródło
2

Do robienia kopii zapasowych często używam rsync. Jeśli chcę wykonać kopię zapasową na zdalnym komputerze, wstawię linię w / etc / fstab, aby utrzymać zdalny komputer zamontowany przez NFS lub CFIS (Samba).

192.168.0.101:/ /mnt/backup nfs rsize=8192,wsize=8192,timeo=14,intr 0 0

Następnie miej linię w moim crontabie używając rsync.

rsync -av /home/user/sourcedir/ /mnt/backup/destinationdir > /home/user/backup.log
jjclarkson
źródło
1

Netcat jest prosty, ale nie wszystkie wersje niezawodnie zamykają połączenie.

Oto wątek na temat używania socat: niezawodnego transferu plików przez TCP

Podsumowując:

Proponowane :

Serwer wysyłający plik:

server$ socat -u FILE:test.dat TCP-LISTEN:9876,reuseaddr
client$ socat -u TCP:127.0.0.1:9876 OPEN:out.dat,creat

Serwer odbiera plik:

server$ socat -u TCP-LISTEN:9876,reuseaddr OPEN:out.txt,creat && cat out.txt
client$ socat -u FILE:test.txt TCP:127.0.0.1:9876

Proponowane ulepszenia :

  • OPEN:out.txt,creat,truncusunie wszystkie bajty out.txtprzed zapisaniem do niego. Ta opcja naśladuje to, czego można oczekiwać cp, i prawdopodobnie jest to, czego chcesz.
  • OPEN:out.txt,creat,exclodmówi napisania, out.txtjeśli już istnieje. Użyj tej opcji dla dodatkowego bezpieczeństwa.
  • OPEN:out.txt,creat,appenddołączy dane do out.txt.
Grzegorz Wierzowiecki
źródło
1

Giver to prosta aplikacja do udostępniania plików. Inne osoby korzystające z Giver w twojej sieci są automatycznie wykrywane i możesz wysłać do nich pliki, po prostu przeciągając je na ich zdjęcie lub ikonę pokazaną w Giver.

W Ubuntu:

sudo apt-get install giver
Gasuma
źródło
0

Możesz także skorzystać z programu Giver . Za jego pomocą możesz przesyłać pliki przez sieć LAN za pomocą 2 kliknięć lub poprzez „przeciąganie i upuszczanie” pliku do odbiorcy. Odbiorcy (którzy również muszą uruchomić giver) są wykrywani przez Zeroconf, więc nie musisz znać nawet ich adresu IP. Oto wideo o tym, jak działa Giver .

Andrei Dziahel
źródło
2
Jako ktoś, kto pracował w Giver w przeszłości, mogę powiedzieć, że jest to fajna aplikacja, ale jest całkowicie nieobsługiwana i ma wiele błędów, szczególnie jeśli chodzi o przesyłanie dużych plików. Nie oczekuj od tego wiele.
Sandy,
@Sandy tak, mam świadomość błędów. W moim przypadku pliki 1,4G zostały pomyślnie przesłane. W każdym razie używanie Giver wciąż wygląda na znacznie łatwiejsze niż NFS / rsync / nc / cokolwiek.
Andrei Dziahel
0

Jeśli nie masz konta (hasła) na hoście odbierającym, możesz użyć woos (oferta internetowa dla jednego strumienia):

plik-lub-katalog woos ...

http://fex.belwue.de/fstools/woos.html

Framstag
źródło