Копировать файлы из OSX в / из Pi


13

У меня есть Pi, работающий без головы, используя ssh и Screen Sharing на OSX и thinvncserver на raspbian.

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


4
Смотрите scpи / или sftp. Если ваш ssh уже работает, они должны быть доступны. Существует также sshfs, который позволяет монтировать разделы в виде NFS.
Златовласка

1
scp over ssh отлично работает для меня. Я сам использую Cyberduck для передачи файлов, так как я могу просто перетаскивать, как в Finder.
Гербен

1
Я использовал sftp (используя FileZilla), который получил туда файлы, поэтому запрос теперь закрыт. (Я бы отметил это как принятое.)
Milliways

Обратите внимание, что шифрование ssh может быть медленным на Pi. Несколько лет назад я обнаружил, что Blowfish является быстрым процессором.
Турбьерн Равн Андерсен

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 не требуется. Если вы получили сообщение об ошибке. Не удалось получить дескриптор файла, ссылающийся на консоль с командой open afp, попробуйте еще раз с помощью sudo, также убедитесь, что на вашем компьютере Mac настроен удаленный вход. ,


@Paul Fort: как вы изначально добавили, что такое «команда open afp»? Должно ли "afp" быть "ftp"?
Питер Мортенсен

@PeterMortensen вы пробовали (или проверили справку Mac)?
Милливэйс

1
Это круто. Любить это! Спасибо за совет, не знал о возможности сделать это.
ГДГР

7

если вы можете использовать ssh, то, скорее всего scp(копия SSH) будет работать.

В любом случае, я бы установил samba, потому что повсюду слишком много 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тоже работает хорошо, но, конечно, добавляет программное обеспечение и накладные расходы, которые могут использоваться только изредка.
Бобстро

3

Ты пробовал scpс -rфлагом? Потому что без этого он не будет выполнять рекурсивное копирование.

Если вы хотите скопировать файл или папку world2, я бы так и сделал:

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

Отличная команда. Быстро и просто. Большое спасибо.
ГутьеррезДев

Вы можете сделать его 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флаг (для --partial --progress), который удобен, когда вы ожидаете долгую передачу с потенциальными прерываниями - таким образом частично перенесенные файлы будут сохранены (при нормальных обстоятельствах они будут удалены), так что Когда вы возобновите перевод, это не займет много времени, чтобы завершить перевод.

Так что в вашем случае вы могли бы сделать:

rsync -avP world2/ pi@10.1.1.10:world2

(при условии , что world2это каталог, то эта команда будет копировать содержимое из world2к /world2директории на удаленном компьютере)


1

Если это более долгосрочное решение, другой вариант - установить Syncthing или Bittorrent Sync на обеих машинах. Он синхронизирует каталоги на нескольких машинах и может обрабатывать большие файлы и каталоги. Это очень удобно в качестве файлового сервера, для резервного копирования и для передачи файлов.

Я только что переключился на Синхронизацию с 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 зайдите в finder> go> connect to server (cmd + k)> и введите адрес вашего pi, smb://192.Ras.Piзатем вы сможете перемещаться по структуре папок, копировать / вставлять файлы и т. Д.


Зачем отправлять ответ на 2-летний вопрос с принятым ответом. Это даже не хороший ответ, так как SMB является б. протокола. Если у вас есть Mac, попробуйте ответ.
Милливэйс

Зачем отправлять бесполезный комментарий на совершенно хороший ответ, который отличается от любого другого решения? Существует несколько способов перемещения файлов из одного места в другое, этот не требует установки какого-либо другого программного обеспечения на Mac и не требует широкого использования терминала. Зачем публиковать его в ветке N лет? A) решение все еще хорошее, B) вопрос по-прежнему актуален - сегодня утром я выполнил поиск в Google, и это первый результат C) это решение отличается от других предоставленных решений.
Jrubins

Я упоминал об этом в первоначальном вопросе «или мне нужно использовать Samba или подобное» и (неявно) исключил его.
Milliways

«Или мне нужно использовать Samba или подобное» - это не исключение. Итак, я прошу прощения за то, что дал вам совершенно хороший ответ, который (в большинстве случаев, поскольку Samba уже установлена ​​во многих дистрибутивах RPi) намного проще, чем любой из других предоставленных ответов. Я действительно не понимаю, почему вы чувствуете необходимость поспорить с моим ответом и понизить его. Тот факт, что у вас 5000 репутации на Stack Exchange, не означает, что вы не чурка.
Jrubins

0

Просто используйте FileZilla и установите новый сайт из менеджера сайта в меню «Файл». Затем выберите SFTP и введите Rasp имя пользователя и пароль, и все готово.


0

Самым простым способом, который я нашел, было использование Cyberduck.

  1. Открыть новое соединение
  2. Выберите SFTP из выпадающего меню
  3. Сервер: введите IP-адрес Pi
  4. Имя пользователя: должно быть «пи»
  5. Пароль: должен быть «малиновым» по умолчанию, если вы не изменили его

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.