Salin file dari OSX ke / dari Pi

13

Saya memiliki Pi berjalan tanpa kepala menggunakan ssh dan Berbagi Layar di OSX dan tightvncserver di raspbian.

Dapatkah saya menyalin file dari Mac ke / dari Pi menggunakan ssh atau Berbagi Layar (yaitu VNC) atau apakah saya perlu menggunakan Samba atau sejenisnya?

Milliways
sumber
4
Lihat scpdan / atau sftp. Jika ssh Anda sudah berfungsi, mereka seharusnya sudah tersedia. Ada juga sshfs, yang memungkinkan pemasangan saham ala NFS.
goldilocks
1
scp over ssh bekerja dengan baik untuk saya. Saya sendiri menggunakan Cyberduck untuk transfer file, karena saya hanya bisa drag and drop, seperti di finder.
Gerben
1
Saya menggunakan sftp (menggunakan FileZilla) yang punya file di sana, jadi permintaan sekarang ditutup. (Saya akan menandai ini sebagai diterima.)
Milliways
Perhatikan bahwa enkripsi ssh bisa lambat di Pi. Saya menemukan blowfish sebagai CPU fastet yang bijak beberapa tahun yang lalu.
Thorbjørn Ravn Andersen
NFS adalah pilihan lain dan paling masuk akal di dunia Unix seperti aslinya.
jet

Jawaban:

18

Dalam 6 tahun sejak saya memposting Jawaban ini banyak hal telah berubah.
dukungan macOS Samba telah meningkat dan Apple sekarang menggunakan Samba sebagai standarnya untuk berbagi file (dan afp tidak bekerja dengan filesystem Apple yang lebih baru)
Debian Buster sekarang menggunakan netatalk 3 - yang memiliki perubahan signifikan, dan memerlukan lebih banyak konfigurasi untuk melakukan sesuatu yang bermanfaat.
Dukungan nfs jauh lebih baik di Raspbian baru-baru ini, tetapi masih memiliki masalah dengan izin tulis dari macOS.

Saya menggunakan semua ftp, Samba, afp dan nfs;
terutama ftp(Filezilla) untuk transfer file rutin ke / dari Pi
dan Sambauntuk menelusuri Pi Home dan berbagi sistem file dan untuk me-mount gambar cadangan saya untuk backup / restorasi.

Saya menggunakan ftp untuk menyelesaikan masalah saya (seperti disebutkan di atas), tetapi baru-baru ini menemukan metode lain, yang mungkin berguna bagi pengguna Mac lain.

sudo apt-get install netatalk

Menginstal protokol appletalk pada Pi. Ini memungkinkan Anda menggunakan yang berikut (pada terminal prompt pada Mac) untuk terhubung ke Pi

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

Anda kemudian dapat menggunakan Finder (atau FileManager lain misalnya QuollEyeTree) untuk mentransfer file ke atau dari Pi, menggunakan teknik yang sama yang akan Anda gunakan pada Mac

Catatan: Pengeditan ini dilakukan oleh pengguna lain, dan AFAIK tidak diperlukan Jika Anda mendapatkan kesalahan Tidak dapat mendapatkan deskriptor file yang merujuk ke konsol dengan perintah afp terbuka coba lagi dengan sudo, juga, pastikan Anda memiliki login jarak jauh yang dikonfigurasi pada komputer Anda. .

Milliways
sumber
@Paul Fort: seperti yang Anda tambahkan sebelumnya, apa itu "perintah open afp"? Haruskah "afp" menjadi "ftp"?
Peter Mortensen
@PeterMortensen sudahkah Anda mencobanya (atau memeriksa bantuan Mac)?
Milliways
1
Ini luar biasa. Suka! Terima kasih atas tipnya, tidak menyadari kemampuan untuk melakukan ini.
gdgr
7

jika Anda dapat menggunakan ssh, maka kemungkinan besar scp(salinan SSH) akan berfungsi juga.

saya tetap akan menginstal samba, karena ada terlalu banyak winboxen di mana-mana dan hal berikutnya yang mungkin Anda perlukan adalah akses dari windows.

lenik
sumber
Saya mencoba scp di Mac tetapi sementara ini tampaknya tidak ada file yang muncul (saya menggunakan "sudo scp -v world2 //[email protected]:" dan varian). Saya telah menggunakan scp (pada Pi) untuk mentransfer kunci rsa. sftp tampaknya merupakan pilihan termudah.
Milliways
scpbiasanya tidak memerlukan sudo, harus berfungsi dengan baik tanpanya.
lenik
scpdari Mac ke RPi berfungsi seperti yang diharapkan dan tidak memerlukan perangkat lunak tambahan pada RPi. netatalkberfungsi dengan baik juga, tetapi tentu saja, menambahkan perangkat lunak dan overhead yang mungkin hanya digunakan sesekali.
bobstro
3

Apakah Anda mencoba scpdengan -rbendera? Karena tanpa itu, itu tidak akan melakukan salinan rekursif.

Jika Anda ingin menyalin file atau folder world2, ini adalah bagaimana saya akan melakukannya:

$ scp -rv world2 [email protected]:/path/to/copy/of/world2/
3cheesewheel
sumber
Perintah luar biasa. Cepat dan mudah. Terima kasih banyak.
GutierrezDev
Anda dapat membuat scplebih mudah digunakan jika Anda mendefinisikan host Anda di ~/.ssh/config(lihat nerderati.com/2011/03/17/… ) - jika Anda mengkonfigurasi host Anda sebagai rpi, maka Anda dapat menggunakan sesuatu seperti scp -r world2 rpi:/path/to/copy/of/world2/. Hanya dalam kasus itu tidak jelas, ia bekerja dengan cara lain juga, misalnya: scp rpi:.bashrc somedir. Jika jalan tidak absolut maka itu akan relatif terhadap $HOME.
ccpizza
3

Jika Anda memiliki banyak file, Anda mungkin juga mempertimbangkan untuk menggunakan rsync . Anda dapat menggunakan -Pflag (untuk --partial --progress), yang berguna ketika Anda mengantisipasi transfer panjang dengan potensi gangguan - dengan cara itu file yang ditransfer sebagian akan dipertahankan (dalam keadaan normal mereka dihapus), sehingga ketika Anda melanjutkan transfer, tidak akan lama untuk menyelesaikan transfer.

Jadi, dalam kasus Anda, Anda dapat melakukan:

rsync -avP world2/ [email protected]:world2

(dengan asumsi bahwa world2adalah sebuah direktori, perintah ini akan menyalin isi dari world2ke /world2direktori pada mesin remote)

3cheesewheel
sumber
1

Jika ini solusi jangka panjang, opsi lain adalah menginstal Syncthing atau Bittorrent Sync di kedua mesin. Itu membuat direktori pada banyak mesin disinkronkan dan dapat menangani file dan direktori besar. Ini sangat berguna sebagai server file, cadangan, dan untuk mentransfer file.

Saya baru saja beralih ke Syncthing dari btsync. Syncthing menyediakan lebih banyak opsi dan kontrol (dan btsync memiliki kode hak milik).

Paket Debian / Ubuntu mereka di apt.syncthing.net bekerja dengan baik untuk saya dan saya menggunakan tutorial ini sebagai panduan

SteveLambert
sumber
1

Siapkan berbagi SMB di Pi Anda, http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html

Kemudian, di Mac Anda, buka finder> go> connect to server (cmd + k)> dan masukkan alamat pi smb://192.Ras.PiAnda maka Anda dapat menavigasi struktur folder, menyalin / menempelkan file, dll.

Jrubins
sumber
Mengapa repot-repot memposting jawaban untuk pertanyaan berusia 2 tahun dengan jawaban yang diterima. Ini bahkan bukan jawaban yang baik, karena SMB adalah a. sebuah protokol. Jika Anda memiliki Mac, cobalah jawabannya.
Milliways
Mengapa repot-repot memposting komentar yang tidak membantu ke jawaban yang sangat bagus yang berbeda dengan setiap solusi lain yang disediakan? Ada beberapa cara untuk memindahkan file dari satu tempat ke tempat lain, yang ini tidak perlu menginstal perangkat lunak lain di mac, dan tidak memerlukan penggunaan terminal yang ekstensif. Mengapa mempostingnya di utas N tahun? A) solusinya masih bagus, B) pertanyaannya masih relevan - saya melakukan pencarian google pagi ini dan ini adalah hasil pertama C) solusi ini berbeda dari solusi lain yang disediakan.
jrubins
Saya telah menyinggung ini dalam pertanyaan awal "atau apakah saya perlu menggunakan Samba atau yang serupa" dan (secara implisit) mengecualikannya.
Milliways
"Atau apakah saya perlu menggunakan Samba atau sejenisnya" bukan bahasa pengecualian. Jadi, saya minta maaf karena memberi Anda jawaban yang sangat baik bahwa (dalam kebanyakan kasus, karena Samba sudah diinstal pada banyak distro RPi) jauh lebih mudah daripada jawaban lain yang disediakan. Saya benar-benar tidak mengerti mengapa Anda merasa perlu berdebat dengan jawaban saya dan menurunkannya. Hanya karena Anda memiliki 5000 reputasi di Stack Exchange, tidak berarti Anda tidak dickhole.
jrubins
0

Cukup gunakan FileZilla dan tetapkan situs baru dari pengelola situs pada File Menu. Kemudian pilih SFTP dan isi dengan Anda Nama pengguna dan kata sandi yang serampangan dan Anda siap melakukannya.

Marco Almeida
sumber
0

Cara termudah yang saya temukan adalah menggunakan Cyberduck.

  1. Buka koneksi baru
  2. Pilih SFTP dari menu dropdown
  3. Server: masukkan alamat IP Pi
  4. Nama pengguna: harus 'pi'
  5. Kata sandi: harus 'raspberry' secara default kecuali Anda mengubahnya

batalkan pilihan login anonim & kemudian hubungkan.

saqehi
sumber
0

Menginstal MacFusion di Mac Anda akan memungkinkan Anda untuk memasang Pi Anda di atas SSH, mirip dengan cara Anda memasang tongkat usb di Mac Anda. Kemudian Anda dapat menggunakan finder untuk menyalin file ke folder apa pun di Pi sesukamu.

Lukas Vermeer
sumber