У мене Pi працює без голови, використовуючи ssh та Screen Sharing на OSX, і tenvncserver на raspbian.
Чи можу я скопіювати файли з Mac в / з Pi за допомогою ssh або Screen Sharing (тобто VNC) або мені потрібно використовувати Samba чи подібні?
У мене Pi працює без голови, використовуючи ssh та Screen Sharing на OSX, і tenvncserver на raspbian.
Чи можу я скопіювати файли з Mac в / з Pi за допомогою ssh або Screen Sharing (тобто VNC) або мені потрібно використовувати Samba чи подібні?
Відповіді:
За 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 налаштовано віддалений вхід. .
якщо ви можете використовувати ssh
, то, ймовірно, scp
(копія SSH) також буде працювати.
я б встановив самбу все одно, тому що скрізь є дуже багато winboxen, і наступне, що вам може знадобитися, - це доступ з Windows.
scp
зазвичай не вимагає sudo
, повинен добре працювати без цього.
scp
з Mac до RPi працює, як очікувалося, і не вимагає додаткового програмного забезпечення на RPi. netatalk
добре працює, але, звичайно, додає програмне забезпечення та накладні витрати, які можуть використовуватися лише зрідка.
Ви спробували 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
.
Якщо у вас багато файлів, ви також можете скористатися rsync . Ви можете використовувати -P
прапор (for --partial --progress
), який є зручним, коли ви очікуєте тривалої передачі з можливими перервами - таким чином частково передані файли будуть зберігатися (за звичайних обставин вони видаляються), так що коли ви відновите передачу, її завершення не займе багато часу.
Тож у вашому випадку ви можете зробити:
rsync -avP world2/ pi@10.1.1.10:world2
(За умови , що world2
це каталог, то ця команда буде копіювати вміст з world2
до /world2
директорії на віддаленому комп'ютері)
Найпростіший спосіб, який я знайшов, - це використання Cyberduck.
скасуйте вибір анонімного входу та підключіться.
Якщо це довгострокове рішення, інший варіант - встановлення Syncthing або Bittorrent Sync на обох машинах. Він зберігає каталоги на декількох машинах синхронізованими і може обробляти великі файли та каталоги. Це дуже зручно як файловий сервер, резервне копіювання та для передачі файлів.
Я просто перейшов на Syncthing з btsync. Синхронізація надає більше опцій та контролю (і btsync має власний код).
Їх пакет Debian / Ubuntu на apt.syncthing.net працював для мене чудово, і я використовував цей підручник як керівництво
Налаштуйте обмін 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
щоб ви могли переміщатися по структурі папок, копіювати / вставляти файли тощо.
Просто скористайтеся FileZilla та встановіть новий сайт від менеджера сайтів у меню Файл. Потім виберіть SFTP і заповніть з вами Rasp ім'я користувача та пароль, і ви готові йти.
Встановлення MacFusion на ваш Mac дозволить вам змонтувати Pi через SSH, подібно до того, як ви зможете встановити USB-накопичувач на вашому Mac. Тоді ви можете використовувати пошук, щоб скопіювати файли в будь-яку папку на Pi як завгодно.
scp
та / абоsftp
. Якщо ваш ssh вже працює, вони повинні бути доступними. Існує такожsshfs
, що дозволяє монтувати акції a la NFS.