Einfache Dateiübertragung

17

Was ist bei zwei Linux-Boxen in einem LAN der einfachste Weg, Dateien zwischen ihnen zu übertragen?

David Thornley
quelle

Antworten:

22

Ich benutze scp.

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

um vom lokalen Rechner auf den entfernten Rechner zu kopieren, oder

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

Kopieren von einem Remote-Computer auf den lokalen Computer.

Wenn der Benutzername auf dem Remotecomputer nicht identisch ist,

scp user@srchost:/path/to/file/file .
KeithB
quelle
3
Ich möchte hinzufügen , Sie Option -r mit scp verwenden können , um rekursiv ein ganzes Verzeichnis scp -r Quelle Desthost kopieren: / path / to / dest /
Steve Burdine
1
@Steve_ Guter Punkt. Außerdem komprimiert -C die Dateien während der Übertragung, was bei langsamen Verbindungen hilfreich sein kann.
KeithB
Entweder scpoder rsyncfür mich.
Josh K
6

Normalerweise mounte ich ein Verzeichnis über ssh über FUSE und sshfs.

Montieren:

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

Aushängen:

$ fusermount -u /path/to/mount/point
Maik
quelle
5

Ich benutze Netcat (wenn ich keine Sicherheit benötige)

nc -l -p 1234 < send_file   # 'server'
nc x.y.z.t 1234 > receive_file  # 'client'
nc3b
quelle
2
Diese Combo gefällt mir besonders gut:tar -c files and folders/ |pv -cN in|lzop|pv -cN out|nc x.y.z.t 1234
jpc
5

nfs könnte nützlich sein.

Das Network File System (NFS) ermöglicht einem Clientknoten den transparenten Dateizugriff über das Netzwerk. Durch die Verwendung von NFS verarbeitet ein Clientknoten Dateien, die sich auf einer Vielzahl von Servern und Serverarchitekturen sowie auf einer Vielzahl von Betriebssystemen befinden. Dateizugriffsaufrufe auf dem Client (z. B. Leseanforderungen) werden in NFS-Protokollanforderungen konvertiert und über das Netzwerk an das Serversystem gesendet.

Möglicherweise benötigen Sie Hilfe von Ihrem Unix-Administrator, um es zum ersten Mal einzurichten, aber es ist sehr nützlich.

Hemant
quelle
Bei Quick-n-Dirty-Übertragungen von * Nix zu * Nix kommt nichts NFS nahe. Ein guter Administrator kann beide Boxen in weniger als 5 Minuten zum Laufen bringen und Transfers durchführen, es ist für den Rest des Systems nahezu transparent und es ist bekannt und stabil. +1 für etwas, bei dem nicht jedes Mal eine Befehlszeile gedrückt werden muss, um etwas zu übertragen.
Avery Payne
2

Für einmalige Dateiübertragungen verwende ich normalerweise SFTP oder eine vorhandene Samba-Freigabe.

Ich empfehle, dass Sie rsync oder unisono (für die 2-Wege-Synchronisation) verwenden, um die Synchronisation aufrechtzuerhalten.

Bearbeiten: scp wäre dann besser sftp, da es auf allen SSH-fähigen Hosts funktionieren würde

Gert
quelle
2

Für Backups verwende ich oft rsync. Wenn ich ein Backup auf einem Remote-Computer durchführen möchte, füge ich eine Zeile in / etc / fstab ein, damit der Remote-Computer weiterhin von NFS oder CFIS (Samba) gemountet wird.

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

Dann habe ich eine Zeile in meiner Crontab mit rsync.

rsync -av /home/user/sourcedir/ /mnt/backup/destinationdir > /home/user/backup.log
jjclarkson
quelle
1

Netcat ist einfach, aber nicht alle Versionen schließen zuverlässig Verbindung.

Hier ist ein Thread über die Verwendung von socat: socat zuverlässige Dateiübertragung über TCP

Etwas zusammenfassen:

Vorgeschlagen :

Server Sendedatei:

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

Server-Empfangsdatei:

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

Vorgeschlagene Verbesserungen :

  • OPEN:out.txt,creat,trunclöscht alle Bytes in, out.txtbevor darauf geschrieben wird. Diese Option ahmt nach, was Sie von erwarten würden cp, und ist wahrscheinlich das, was Sie wollen.
  • OPEN:out.txt,creat,exclweigert sich zu schreiben, out.txtwenn es bereits existiert. Verwenden Sie diese Option für zusätzliche Sicherheit.
  • OPEN:out.txt,creat,appendfügt Daten an out.txt.
Grzegorz Wierzowiecki
quelle
1

Giver ist eine einfache Desktop-Anwendung zur Dateifreigabe. Andere Personen, die Giver in Ihrem Netzwerk ausführen, werden automatisch erkannt, und Sie können Dateien an sie senden, indem Sie die Dateien einfach auf ihr Foto oder Symbol ziehen, das in Giver angezeigt wird.

In Ubuntu:

sudo apt-get install giver
Gasuma
quelle
0

Sie können auch das Programm Giver verwenden . Damit können Sie Dateien mit 2 Klicks über LAN oder per "Drag'n'Drop" zum Empfänger übertragen. Empfänger (die ebenfalls ausgeführt werden müssen giver) werden über Zeroconf ermittelt, sodass Sie nicht einmal ihre IP-Adresse kennen müssen. Hier ist ein Video darüber, wie Giver funktioniert .

Andrei Dziahel
quelle
2
Als jemand, der in der Vergangenheit an Giver gearbeitet hat, kann ich sagen, dass es eine nette App ist, aber sie ist absolut nicht gepflegt und weist viele Fehler auf, insbesondere beim Übertragen großer Dateien. Erwarten Sie nicht viel davon.
Sandy
@ Sandy ja, mir sind Bugs bekannt. In meinem Fall wurden 1.4G-Dateien erfolgreich übertragen. Auf jeden Fall sieht die Verwendung von Giver immer noch viel einfacher aus als NFS / rsync / nc / whatever.
Andrei Dziahel
0

Wenn Sie auf dem empfangenden Host kein Konto (Passwort) haben, können Sie woos (Web Offer One Stream) verwenden:

woos file-or-directory ...

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

Framstag
quelle