Kopieren Sie Dateien von OSX nach / von Pi

12

Ich habe einen Pi ohne Heads mit SSH und Screen Sharing unter OSX und Tightvncserver unter Raspbian.

Kann ich Dateien mit ssh oder Screen Sharing (dh VNC) vom Mac auf den Pi kopieren oder muss ich Samba oder ähnliches verwenden?

Milliways
quelle
4
Siehe scpund / oder sftp. Wenn Ihr SSH bereits funktioniert, sollten sie verfügbar sein. Es gibt auch eine sshfs, die das Mounten von Freigaben a la NFS ermöglicht.
Goldlöckchen
1
scp über ssh funktionieren gut für mich. Ich selbst benutze Cyberduck für die Dateiübertragung, da ich wie im Finder einfach ziehen und ablegen kann.
Gerben
1
Ich habe sftp (mit FileZilla) verwendet, das die Dateien dort abgerufen hat, daher wurde die Abfrage jetzt geschlossen. (Ich hätte dies als akzeptiert markiert.)
Milliways
Beachten Sie, dass die SSH-Verschlüsselung auf dem Pi langsam sein kann. Ich fand Blowfish vor einigen Jahren CPU-schnell.
Thorbjørn Ravn Andersen
NFS ist eine weitere Option und in der Unix-Welt am sinnvollsten, da es nativ ist.
Jet

Antworten:

17

In den 6 Jahren, seit ich diese Antwort gepostet habe, haben sich viele Dinge geändert.
Die Unterstützung für macOS Samba wurde verbessert und Apple verwendet jetzt Samba als Standard für die Dateifreigabe (und afp funktioniert nicht mit neueren Apple-Dateisystemen).
Debian Buster verwendet jetzt Netatalk 3 - das erhebliche Änderungen aufweist und mehr Konfiguration erfordert, um etwas Nützliches zu tun.
NFS-Unterstützung ist in den letzten Raspbian-Versionen viel besser, hat aber immer noch Probleme mit der Schreibberechtigung von macOS.

Ich benutze alle ftp, Samba, afp und nfs;
Hauptsächlich ftp(Filezilla) für die routinemäßige Dateiübertragung zum / vom Pi
und Sambazum Durchsuchen des Pi Home und der freigegebenen Dateisysteme sowie zum Loop-Mounten meiner Backup-Images zur Sicherung / Wiederherstellung.

Ich habe FTP verwendet, um mein Problem zu lösen (wie oben erwähnt), habe aber kürzlich eine andere Methode entdeckt, die andere Mac-Benutzer möglicherweise nützlich finden.

sudo apt-get install netatalk

Installiert das Appletalk-Protokoll auf dem Pi. Auf diese Weise können Sie Folgendes (an der Eingabeaufforderung des Terminals auf dem Mac) verwenden, um eine Verbindung zum Pi herzustellen

open afp://10.1.1.10  (replace this with your Raspberry Pi IP address)

Sie können dann Finder (oder einen anderen FileManager, z. B. QuollEyeTree) verwenden, um Dateien mit denselben Techniken wie auf dem Mac zum oder vom Pi zu übertragen

Hinweis: Diese Bearbeitung wurde von einem anderen Benutzer vorgenommen, und AFAIK ist nicht erforderlich. Wenn der Fehler angezeigt wird. Es konnte kein Dateideskriptor für die Konsole mit dem Befehl open afp abgerufen werden. Versuchen Sie es erneut mit sudo. Stellen Sie außerdem sicher, dass auf Ihrem Mac die Remote-Anmeldung konfiguriert ist .

Milliways
quelle
@ Paul Fort: Wie Sie es ursprünglich hinzugefügt haben, was ist "open afp command"? Sollte "afp" "ftp" sein?
Peter Mortensen
@PeterMortensen hast du es versucht (oder die Mac-Hilfe überprüft)?
Milliways
1
Das ist fantastisch. Liebe es! Vielen Dank für den Tipp, war sich der Fähigkeit dazu nicht bewusst.
GDG
7

Wenn Sie verwenden können ssh, scpfunktioniert höchstwahrscheinlich auch (SSH-Kopie).

Ich würde Samba trotzdem installieren, da es überall zu viele Winboxen gibt und das nächste, was Sie möglicherweise benötigen, der Zugriff von Windows ist.

lenik
quelle
Ich habe scp auf dem Mac ausprobiert, aber während dies zu funktionieren schien, wurden keine Dateien angezeigt (ich habe "sudo scp -v world2 //[email protected]:" und Varianten verwendet). Ich habe scp (auf Pi) verwendet, um rsa-Schlüssel zu übertragen. SFTP scheint die einfachste Option zu sein.
Milliways
scperfordert normalerweise nicht sudo, sollte ohne es gut funktionieren.
Lenik
scpVon einem Mac auf ein RPi funktioniert wie erwartet und erfordert keine zusätzliche Software auf dem RPi. netatalkfunktioniert auch gut, fügt aber natürlich Software und Overhead hinzu, die möglicherweise nur gelegentlich verwendet werden.
Bobstro
3

Hast du es scpmit der -rFlagge versucht ? Denn ohne sie wird keine rekursive Kopie ausgeführt.

Wenn Sie die Datei oder den Ordner kopieren world2möchten, würde ich dies folgendermaßen tun:

$ scp -rv world2 [email protected]:/path/to/copy/of/world2/
3cheesewheel
quelle
Ausgezeichnetes Kommando. Schnell und einfach. Vielen Dank.
GutierrezDev
Sie können die Verwendung scperheblich vereinfachen, wenn Sie Ihre Hosts in definieren ~/.ssh/config(siehe nerderati.com/2011/03/17/… ). Wenn Sie Ihren Host als konfigurieren rpi, können Sie so etwas wie verwenden scp -r world2 rpi:/path/to/copy/of/world2/. Nur für den Fall, dass es nicht offensichtlich ist, funktioniert es auch umgekehrt, z scp rpi:.bashrc somedir. Wenn ein Pfad nicht absolut ist, ist er relativ zu $HOME.
ccpizza
3

Wenn Sie viele Dateien haben, können Sie auch rsync verwenden . Sie können das -PFlag (für --partial --progress) verwenden, was praktisch ist, wenn Sie eine lange Übertragung mit möglichen Unterbrechungen erwarten. Auf diese Weise bleiben die teilweise übertragenen Dateien erhalten (unter normalen Umständen werden sie gelöscht) Wenn Sie die Übertragung fortsetzen, dauert es nicht so lange, bis die Übertragung abgeschlossen ist.

In Ihrem Fall könnten Sie also Folgendes tun:

rsync -avP world2/ [email protected]:world2

(unter der Annahme , dass world2ein Verzeichnis ist , dieser Befehl den kopieren würde Inhalt der world2an das /world2auf der Remote - Computer - Verzeichnis)

3cheesewheel
quelle
1

Wenn es sich um eine längerfristige Lösung handelt, können Sie auch Syncthing oder Bittorrent Sync auf beiden Computern installieren . Es hält Verzeichnisse auf mehreren Computern synchronisiert und kann große Dateien und Verzeichnisse verarbeiten. Es ist sehr praktisch als Dateiserver, Backup und zum Übertragen von Dateien.

Ich habe gerade von btsync zu Syncthing gewechselt. Die Synchronisierung bietet mehr Optionen und Kontrolle (und btsync verfügt über proprietären Code).

Das Debian / Ubuntu-Paket auf apt.syncthing.net hat für mich gut funktioniert und ich habe dieses Tutorial als Leitfaden verwendet

Steve Lambert
quelle
1

Richten Sie die SMB-Freigabe auf Ihrem Pi unter http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html ein

Gehen Sie dann auf Ihrem Mac zu Finder> go> Verbindung zum Server herstellen (cmd + k)> und geben Sie die Adresse Ihres pi ein. smb://192.Ras.PiAnschließend können Sie durch die Ordnerstruktur navigieren, Dateien kopieren / einfügen usw.

jrubins
quelle
Warum sich die Mühe machen, eine Antwort auf eine 2 Jahre alte Frage mit einer akzeptierten Antwort zu veröffentlichen? Dies ist nicht einmal eine gute Antwort, da SMB ein b ist. eines Protokolls. Wenn Sie einen Mac haben, versuchen Sie die Antwort.
Milliways
Warum sollten Sie sich die Mühe machen, einen nicht hilfreichen Kommentar zu einer vollkommen guten Antwort zu veröffentlichen, die sich von jeder anderen bereitgestellten Lösung unterscheidet? Es gibt mehrere Möglichkeiten, Dateien von einem Ort an einen anderen zu verschieben. Für diese ist keine andere Software auf dem Mac installiert und das Terminal muss nicht in großem Umfang verwendet werden. Warum in einem N Jahre alten Thread posten? A) Die Lösung ist immer noch gut. B) Die Frage ist immer noch relevant. Ich habe heute Morgen eine Google-Suche durchgeführt. Dies ist das erste Ergebnis. C) Diese Lösung unterscheidet sich von den anderen angebotenen Lösungen.
Jrubins
Ich hatte in der ursprünglichen Frage "oder muss ich Samba oder ähnliches verwenden" darauf hingewiesen und es (implizit) ausgeschlossen.
Milliways
"Oder muss ich Samba oder ähnliches verwenden?" Ist keine ausschließende Sprache. Daher entschuldige ich mich für die perfekte Antwort, die (in den meisten Fällen, da Samba bereits in vielen RPi-Distributionen installiert ist) viel einfacher ist als alle anderen Antworten. Ich verstehe wirklich nicht, warum Sie das Bedürfnis haben, mit meiner Antwort zu streiten und sie abzustimmen. Nur weil Sie bei Stack Exchange einen Ruf von 5000 haben, heißt das nicht, dass Sie kein Dickhole sind.
Jrubins
0

Verwenden Sie einfach FileZilla und legen Sie im Site-Manager im Dateimenü eine neue Site fest. Wählen Sie dann SFTP aus und geben Sie Ihren Rasp-Benutzernamen und Ihr Passwort ein.

Marco Almeida
quelle
0

Der einfachste Weg, den ich gefunden habe, war die Verwendung von Cyberduck.

  1. Neue Verbindung öffnen
  2. Wählen Sie SFTP aus dem Dropdown-Menü
  3. Server: Geben Sie die IP-Adresse des Pi ein
  4. Benutzername: sollte 'pi' sein
  5. Passwort: sollte standardmäßig "Himbeere" sein, es sei denn, Sie haben es geändert

Deaktivieren Sie die anonyme Anmeldung und stellen Sie dann eine Verbindung her.

saqehi
quelle
0

Installieren Macfusion auf Ihrem Mac können Sie Ihr Pi über SSH, ähnlich wie montieren , wie Sie einen USB - Stick auf Ihrem Mac montieren würden. Dann können Sie den Finder verwenden, um Dateien nach Belieben in einen beliebigen Ordner auf dem Pi zu kopieren.

Lukas Vermeer
quelle