Копіюйте файли з OSX в / з Pi


13

У мене Pi працює без голови, використовуючи ssh та Screen Sharing на OSX, і tenvncserver на raspbian.

Чи можу я скопіювати файли з Mac в / з Pi за допомогою ssh або Screen Sharing (тобто VNC) або мені потрібно використовувати Samba чи подібні?


4
Дивіться scpта / або sftp. Якщо ваш ssh вже працює, вони повинні бути доступними. Існує також sshfs, що дозволяє монтувати акції a la NFS.
goldilocks

1
scp over ssh працює добре для мене. Я сам використовую Cyberduck для передачі файлів, так як можу просто перетягувати, як у пошуку.
Гербен

1
Я використовував sftp (використовуючи FileZilla), який отримав файли, тому запит закритий. (Я зазначив би це як прийняте.)
Міллівейс

Зауважте, що шифрування ssh може бути повільним на Pi. Кілька років тому я виявив, що муха є найшвидшим процесором.
Thorbjørn Ravn Andersen

NFS - це ще один варіант, який має найбільший сенс у світі Unix, як рідний.
струмінь

Відповіді:


18

За 6 років, відколи я опублікував цю відповідь, багато чого змінилося.
Підтримка macOS Samba покращилася, і тепер Apple використовує Samba за замовчуванням для спільного використання файлів (а afp не працює з новими файлами файлів Apple).
Debian Buster тепер використовує netatalk 3 - який має значні зміни і вимагає додаткової конфігурації, щоб зробити все корисне.
nfs підтримує набагато кращу в останніх програмах Raspbian, але все ще є проблеми з дозволом на запис від macOS.

Я використовую всі ftp, Samba, afp та nfs;
головним чином ftp(Filezilla) для рутинної передачі файлів в / з Pi
та Sambaдля перегляду Pi Home та спільних файлових систем та для циклічного монтажу резервних зображень для резервного копіювання / відновлення.

Я використовував ftp, щоб вирішити свою проблему (як зазначено вище), але нещодавно відкрив інший метод, який інші користувачі Mac можуть вважати корисними.

sudo apt-get install netatalk

Встановлює протокол appletalk на Pi. Це дозволяє використовувати наступне (у запиті терміналу на Mac) для підключення до Pi

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

Потім ви можете використовувати Finder (або будь-який інший FileManager, наприклад, QuollEyeTree) для передачі файлів на Pi або з нього, використовуючи ті самі методи, що і в Mac

Примітка. Це редагування призначено іншим користувачем, і AFAIK не потрібний. Якщо ви отримали помилку Не вдалося отримати дескриптор файлу, що відноситься до консолі з відкритою командою afp, спробуйте ще раз із sudo, також переконайтеся, що на вашому mac налаштовано віддалений вхід. .


@Paul Fort: як ви оригінально додали його, що таке "відкрита команда afp"? Чи повинен "afp" бути "ftp"?
Пітер Мортенсен

@PeterMortensen Ви спробували це (або перевірили довідку Mac)?
Міллівейс

1
Це круто. Любіть це! Спасибі за підказку, не усвідомлював вміння це робити.
gdgr

7

якщо ви можете використовувати ssh, то, ймовірно, scp(копія SSH) також буде працювати.

я б встановив самбу все одно, тому що скрізь є дуже багато winboxen, і наступне, що вам може знадобитися, - це доступ з Windows.


Я спробував scp на Mac, але поки це, здавалося, не працювало, файлів не з’явилося (я використовував "sudo scp -v world2 //pi@10.1.1.10:" та варіанти). Я використовував scp (на Pi) для передачі ключів rsa. sftp здається найпростішим варіантом.
Міллівейс

scpзазвичай не вимагає sudo, повинен добре працювати без цього.
lenik

scpз Mac до RPi працює, як очікувалося, і не вимагає додаткового програмного забезпечення на RPi. netatalkдобре працює, але, звичайно, додає програмне забезпечення та накладні витрати, які можуть використовуватися лише зрідка.
bobstro

3

Ви спробували scpз -rпрапором? Тому що без цього він не буде виконувати рекурсивну копію.

Якщо ви хотіли скопіювати файл чи папку world2, я б це зробив:

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

Відмінна команда. Швидко і просто. Велике спасибі.
GutierrezDev

Ви можете scpзначно полегшити їх використання, якщо визначите своїх хостів у ~/.ssh/config(див. Nerderati.com/2011/03/17/… ) - якщо ви налаштуєте свого хоста як rpi, то ви можете використовувати щось подібне scp -r world2 rpi:/path/to/copy/of/world2/. Тільки в разі , якщо це не очевидно, вона працює по - іншому теж, наприклад: scp rpi:.bashrc somedir. Якщо шлях не є абсолютним, він буде відносно $HOME.
ccpizza

3

Якщо у вас багато файлів, ви також можете скористатися rsync . Ви можете використовувати -Pпрапор (for --partial --progress), який є зручним, коли ви очікуєте тривалої передачі з можливими перервами - таким чином частково передані файли будуть зберігатися (за звичайних обставин вони видаляються), так що коли ви відновите передачу, її завершення не займе багато часу.

Тож у вашому випадку ви можете зробити:

rsync -avP world2/ pi@10.1.1.10:world2

(За умови , що world2це каталог, то ця команда буде копіювати вміст з world2до /world2директорії на віддаленому комп'ютері)


1

Найпростіший спосіб, який я знайшов, - це використання Cyberduck.

  1. Відкрити нове з'єднання
  2. Виберіть SFTP зі спадного меню
  3. Сервер: введіть IP-адресу Pi
  4. Ім'я користувача: має бути "pi"
  5. Пароль: за замовчуванням має бути "малиновим", якщо ви не змінили його

скасуйте вибір анонімного входу та підключіться.


1

Якщо це довгострокове рішення, інший варіант - встановлення Syncthing або Bittorrent Sync на обох машинах. Він зберігає каталоги на декількох машинах синхронізованими і може обробляти великі файли та каталоги. Це дуже зручно як файловий сервер, резервне копіювання та для передачі файлів.

Я просто перейшов на Syncthing з btsync. Синхронізація надає більше опцій та контролю (і btsync має власний код).

Їх пакет Debian / Ubuntu на apt.syncthing.net працював для мене чудово, і я використовував цей підручник як керівництво


1

Налаштуйте обмін SMB на Pi, http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html

Потім на своєму Mac перейдіть до пошуку> перейдіть> підключіться до сервера (cmd + k)> та введіть адресу свого pi, smb://192.Ras.Piщоб ви могли переміщатися по структурі папок, копіювати / вставляти файли тощо.


Навіщо турбуватися над публікацією відповіді на запитання на 2 роки із прийнятою відповіддю. Це навіть не є гарною відповіддю, оскільки SMB є b. протоколу. Якщо у вас Mac, спробуйте відповісти.
Міллівейс

Навіщо турбуватися публікувати негідний коментар на абсолютно гарну відповідь, що відрізняється від будь-якого іншого рішення? Існує кілька способів переміщення файлів з одного місця в інше, цей не потребує встановлення будь-якого іншого програмного забезпечення на mac та не потребує широкого використання терміналу. Навіщо публікувати його на потоці N років? А) рішення все-таки добре, В) питання все ще актуальне - я здійснив пошук в Google вранці, і це перший результат С) це рішення відрізняється від інших пропонованих рішень.
jrubins

Я нагадав про це в оригінальному запитанні "чи мені потрібно використовувати Самба або подібне" і (неявно) це виключив.
Міллівейс

"Або мені потрібно використовувати Samba чи подібні" - це не ексклюзивна мова. Тож я вибачаюсь за те, що дав вам ідеально хорошу відповідь, що (у більшості випадків, оскільки Samba вже встановлена ​​на багатьох дистрибутивах RPI), набагато простіше, ніж будь-який із інших наданих відповідей. Я дійсно не бачу, чому ви відчуваєте необхідність сперечатися з моєю відповіддю і спростовувати це. Тільки тому, що ти маєш 5000 репутацію на Stack Exchange, це не означає, що ти не є дурдом.
jrubins

0

Просто скористайтеся FileZilla та встановіть новий сайт від менеджера сайтів у меню Файл. Потім виберіть SFTP і заповніть з вами Rasp ім'я користувача та пароль, і ви готові йти.


0

Встановлення MacFusion на ваш Mac дозволить вам змонтувати Pi через SSH, подібно до того, як ви зможете встановити USB-накопичувач на вашому Mac. Тоді ви можете використовувати пошук, щоб скопіювати файли в будь-яку папку на Pi як завгодно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.