Skopiuj pliki z OSX do / z Pi


13

Mam Pi działającego bezgłowo za pomocą ssh i Screen Sharing na OSX i tightvncserver na raspbian.

Czy mogę skopiować pliki z komputera Mac do / z Pi przy użyciu ssh lub Screen Sharing (tj. VNC), czy też muszę używać Samby lub podobnego urządzenia?


4
Zobacz scpi / lub sftp. Jeśli twój ssh już działa, powinien być dostępny. Istnieje również opcja sshfs, która pozwala na montowanie udziałów a la NFS.
Złotowłosa

1
scp over ssh działa dobrze dla mnie. Sam używam Cyberduck do przesyłania plików, ponieważ mogę po prostu przeciągać i upuszczać, jak w wyszukiwarce.
Gerben,

1
Użyłem sftp (przy użyciu FileZilla), który tam zapisał pliki, więc zapytanie zostało zamknięte. (
Oznaczę

Zauważ, że szyfrowanie ssh może być powolne na Pi. Odkryłem, że blowfish jest szybki pod względem procesora kilka lat temu.
Thorbjørn Ravn Andersen

NFS jest kolejną opcją i ma sens w świecie uniksowym, ponieważ jest rodzimy.
odrzutowiec

Odpowiedzi:


18

W ciągu 6 lat od opublikowania tej odpowiedzi wiele rzeczy się zmieniło.
macOS Samba poprawiła się i Apple używa teraz Samby jako domyślnej do udostępniania plików (a afp nie działa z nowszymi plikami Apple)
Debian Buster używa teraz netatalk 3 - który ma znaczące zmiany i wymaga większej konfiguracji, aby zrobić coś pożytecznego.
Obsługa nfs jest znacznie lepsza w ostatnim Raspbian, ale nadal ma problemy z pozwoleniem na zapis z macOS.

Używam wszystkich ftp, Samba, afp i nfs;
głównie ftp(Filezilla) do rutynowego przesyłania plików do / z Pi
oraz Sambado przeglądania Pi Home i współdzielonych systemów plików oraz do montowania w pętli moich obrazów kopii zapasowych w celu tworzenia kopii zapasowych / przywracania.

Użyłem ftp do rozwiązania mojego problemu (jak wspomniano powyżej), ale ostatnio odkryłem inną metodę, którą inni użytkownicy komputerów Mac mogą uznać za przydatną.

sudo apt-get install netatalk

Instaluje protokół appletalk na Pi. Dzięki temu możesz użyć następujących poleceń (w wierszu poleceń na komputerze Mac), aby połączyć się z Pi

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

Następnie możesz użyć Findera (lub dowolnego innego menedżera plików, np. QuollEyeTree), aby przesłać pliki do lub z Pi, korzystając z tych samych technik, których używałbyś na komputerze Mac

Uwaga: Ta edycja jest wykonywana przez innego użytkownika, a AFAIK jest niepotrzebny. Jeśli pojawi się błąd Nie można uzyskać deskryptora pliku odnoszącego się do konsoli za pomocą polecenia open afp, spróbuj ponownie za pomocą sudo, upewnij się też, że masz zdalne logowanie skonfigurowane na komputerze Mac .


@Paul Fort: jak go pierwotnie dodałeś, czym jest „polecenie open afp”? Czy „afp” powinno być „ftp”?
Peter Mortensen

@PeterMortensen próbowałeś (lub sprawdziłeś pomoc Mac)?
Milliways,

1
To jest niesamowite. Kocham to! Dzięki za podpowiedź, nie był świadomy tej możliwości.
gdgr

7

jeśli możesz użyć ssh, najprawdopodobniej również scp(kopia SSH) będzie działać.

i tak zainstalowałbym sambę, ponieważ wszędzie jest za dużo winboxen, a następną rzeczą, której możesz potrzebować, będzie dostęp z okien.


Próbowałem scp na Macu, ale podczas gdy wyglądało na to, że działa, nie pojawiły się żadne pliki (użyłem „sudo scp -v world2 //pi@10.1.1.10:” i wariantów). Użyłem scp (na Pi) do przeniesienia kluczy rsa. sftp wydaje się najłatwiejszą opcją.
Milliways,

scpzwykle nie wymaga sudo, powinien działać bez niego.
lenik,

scpz komputera Mac na RPi działa zgodnie z oczekiwaniami i nie wymaga żadnego dodatkowego oprogramowania na RPi. netatalkdziała również dobrze, ale oczywiście dodaje oprogramowanie i koszty ogólne, które mogą być używane tylko okazjonalnie.
bobstro

3

Próbowałeś scpz -rflagą? Ponieważ bez niego nie wykona kopii rekurencyjnej.

Jeśli chciałbyś skopiować plik lub folder world2, zrobiłbym to w ten sposób:

$ scp -rv world2 pi@10.1.1.10:/path/to/copy/of/world2/

Doskonała komenda. Szybko i łatwo. Dziękuję Ci bardzo.
GutierrezDev

Możesz scpznacznie ułatwić korzystanie, jeśli zdefiniujesz hosty w ~/.ssh/config(patrz nerderati.com/2011/03/17/… ) - jeśli skonfigurujesz hosta jako rpi, możesz użyć czegoś takiego scp -r world2 rpi:/path/to/copy/of/world2/. Na wypadek, gdyby nie było to oczywiste, działa również w drugą stronę, np scp rpi:.bashrc somedir. : . Jeśli ścieżka nie jest bezwzględna, będzie względna $HOME.
ccpizza

3

Jeśli masz dużo plików, możesz również rozważyć użycie rsync . Będziesz mógł użyć -Pflagi (for --partial --progress), co jest przydatne, gdy oczekujesz długiego transferu z potencjalnymi przerwami - w ten sposób częściowo przeniesione pliki zostaną zachowane (w normalnych okolicznościach zostaną usunięte), dzięki czemu po wznowieniu transferu transfer nie potrwa tak długo.

W twoim przypadku możesz zrobić:

rsync -avP world2/ pi@10.1.1.10:world2

(zakładając, że world2jest to katalog, to polecenie będzie skopiować zawartość z world2do /world2katalogu na komputerze zdalnym)


1

Jeśli jest to rozwiązanie długoterminowe, inną opcją jest instalacja Syncthing lub Bittorrent Sync na obu komputerach. Utrzymuje synchronizację katalogów na wielu komputerach i może obsługiwać duże pliki i katalogi. Jest to bardzo przydatne jako serwer plików, kopia zapasowa i do przesyłania plików.

Właśnie przełączyłem się na Syncthing z btsync. Syncthing zapewnia więcej opcji i kontroli (a btsync ma zastrzeżony kod).

Ich pakiet Debian / Ubuntu na stronie apt.syncthing.net działał dobrze dla mnie i wykorzystałem ten samouczek jako przewodnik


1

Skonfiguruj udostępnianie SMB na swoim komputerze Pi, http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html

Następnie na komputerze Mac przejdź do wyszukiwarki> przejdź> połącz z serwerem (cmd + k)> i wprowadź adres swojego pi, smb://192.Ras.Pia następnie możesz nawigować po strukturze folderów, kopiować / wklejać pliki itp.


Po co zawracać sobie głowę zamieszczaniem odpowiedzi na dwuletnie pytanie z zaakceptowaną odpowiedzią. To nie jest nawet dobra odpowiedź, ponieważ SMB to b. protokołu. Jeśli masz komputer Mac, spróbuj odpowiedzieć.
Milliways

Po co zawracać sobie głowę zamieszczaniem nieprzydatnego komentarza do doskonale dobrej odpowiedzi, która różni się od wszystkich innych dostępnych rozwiązań? Istnieje wiele sposobów przenoszenia plików z jednego miejsca do drugiego, ten nie wymaga instalowania żadnego innego oprogramowania na komputerze Mac i nie wymaga intensywnego korzystania z terminala. Po co publikować w wątku N-letnim? A) rozwiązanie jest nadal dobre, B) pytanie jest nadal aktualne - przeprowadziłem dziś rano wyszukiwanie w Google i jest to pierwszy wynik C) to rozwiązanie różni się od innych podanych rozwiązań.
jrubins

Nawiązałem do tego w pierwotnym pytaniu „czy muszę używać Samby lub podobnego” i (domyślnie) wykluczyłem to.
Milliways,

„Czy muszę używać Samby lub podobnego” nie jest językiem wykluczającym. Przepraszam więc za udzielenie idealnie dobrej odpowiedzi, która (w większości przypadków, ponieważ Samba jest już zainstalowana na wielu dystrybucjach RPi) jest znacznie łatwiejsza niż w przypadku innych podanych odpowiedzi. Naprawdę nie rozumiem, dlaczego czujesz potrzebę dyskutowania z moją odpowiedzią i głosowania za nią. To, że masz 5000 reputacji na Stack Exchange, nie oznacza, że ​​nie jesteś dupkiem.
jrubins

0

Wystarczy użyć FileZilla i ustawić nową witrynę z menedżera witryny w menu Plik. Następnie wybierz SFTP i wpisz nazwę użytkownika i hasło Rasp i możesz już iść.


0

Najłatwiejszym sposobem było znalezienie Cyberduck.

  1. Otwórz nowe połączenie
  2. Wybierz SFTP z menu rozwijanego
  3. Serwer: wpisz adres IP Pi
  4. Nazwa użytkownika: powinna być „pi”
  5. Hasło: domyślnie powinno być „malinowe”, chyba że zostało zmienione

odznacz anonimowe logowanie, a następnie połącz.


0

Zainstalowanie MacFusion na Macu pozwoli ci zamontować Pi na SSH, podobnie jak na USB. Następnie możesz użyć wyszukiwarki, aby skopiować pliki do dowolnego folderu na Pi, jak chcesz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.