我有两个运行 debian wheezy 的 RasberryPi,我想将计算机 A 中的一个文件夹安装到计算机 B 上。
最好的(最有效的)方法是什么?
我可以通过SMB来做到这一点,但那是针对Windows的,我认为必须有更好的方法来跨Linux共享。
答案1
SSHFS 很棒。它可以将远程目录挂载到本地目录中保险丝。下面的命令用于#
指示命令以 身份执行root
,而$
指示以普通用户身份执行。由于需要 FUSE 软件,因此首先确保它可用并正在运行。
lsmod
下面的和命令之一grep
可以显示软件是否已加载并可供使用。任一命令的结果都表明该命令fuse
可用。
# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin
如果这两个命令都没有结果,请尝试使用modprobe
并再次检查来加载内核模块而不重新启动。
# modprobe fuse
# lsmod fuse
如果加载模块失败,请使用apt-get
.
# apt-get install fuse
安装后再次检查。
# modprobe fuse
# lsmod fuse
在继续之前必须安装并运行 FUSE。
检查 的权限/dev/fuse
。这些权限应为您的常规用户帐户提供读写访问权限。如果您确定您的普通用户帐户已经具有 的读写权限,请跳过此部分/dev/fuse
。
# ls -l /dev/fuse
输出可能类似于以下内容之一。
crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)
2013 年,我的 Debian 创建了/dev/fuse
权限0600
、所有者root
、组所有者fuse
。我需要让保险丝组使用该设备并将我的常规用户帐户添加到组中,如下所示。
# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse
如果需要新的组成员身份,请注销并重新登录以成为该组的成员。
接下来,ssh
按如下方式安装两侧。
# apt-get install ssh
这个答案是为 Debian 编写的,但至少在 Ubuntu 18.x 上,openssh-client
、fuse
和其他一些软件包是 Ubuntu 软件包的一部分sshfs
。sshfs
客户端需要该软件,但如果需要,也可以在两侧安装。软件包依赖项之一是fuse
,但安装程序会跳过已安装的软件。
# Ubuntu 18.x:
# apt-get install sshfs
有了fuse
和ssh
可用,并且有使用设备的权限,/dev/fuse
,为远程文件系统创建挂载点;并且,按如下方式在本地安装该远程文件系统。
# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/
要挂载 home 以外的目录,请在冒号后指定。
$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name
要卸载,请使用fusermount
.
fusermount -u /mnt/$directory_name
如果您有一台 Windows 计算机,它也可以使用 SSHFSwin-sshfs。该软件将与SSHFS“映射驱动器”,这样您就可以拥有包含远程目录的Windows驱动器号。
答案2
您可以使用很多东西,其中流行的选项是:
- 网络文件系统
- 桑巴/CIFS
- SSHFS
为了易于设置,我认为它们必须按这个顺序排列(顶部:最简单)
SSHFS
通过 FUSE,您可以通过 ssh 挂载远程文件系统。我不会介绍如何进行,因为克里斯托弗已经很好地解释了这一点。请注意,为了自动挂载文件,需要一个多一点工作。
桑巴舞
它将允许您使用 Windows 和 Unix 机器访问远程文件夹。如果这对你来说没什么大不了的,那么你可能不会从中受益。但是,在 init 上自动挂载它很容易(只需在 处输入适当的值/etc/fstab
,包括username=<your-samba-username>,password=<your-samba-password>
在选项列中。
网络文件系统
它将让您仅通过 IP 进行身份验证(没有用户名=更快,仅在您的内部使用非敌意的LAN)或通过 Kerberos Tickets(对于只有两个 Raspberry 来说太痛苦了;但在企业环境中很有用)。
由于它具有内核模式支持,因此它的运行速度比 sshfs 更快。此外,由于有未执行加密它将具有更好的吞吐量,对于微型 Raspberry ARM 来说,它可能会有所不同。
此外,只要您信任您的网络,设置起来就不那么痛苦了。您也有自动挂载支持/etc/fstab
,并且不必输入敏感数据(例如用户名或密码),如果您的用户名已同步(相同/etc/passwd
和/etc/group
文件),您可以使用常用的 POSIX 权限工具集(chown
、chgrp
和chmod
)。
答案3
答案4
我过去使用过 SFTP 网络驱动器和 ExpanDrive,我可以告诉你sshfs毫无疑问优于两者。