我正在使用SSHFS挂载从我的笔记本电脑到中央服务器。
显然,SSHFS 挂载在较长时间断开连接后(例如在挂起期间)被破坏,导致底层 SSH 连接超时。
有没有办法让 SSHFS 挂载在长期断开连接(> 5 分钟)甚至使用不同 IP 重新拨号的情况下幸存下来?
我有一个小型 Linux 服务器(Debian Squeeze),它运行一个 Samba 服务器,该服务器配置为与一些 Windows 机器共享一些文件夹。在尝试从 Windows 中删除目录之一时,我收到“无法删除文件夹”错误。
我试图从 linux 的控制台中删除目录我得到了一个类似的错误:
# rm dir-name -rf
rm: cannot remove `dir-name': Directory not empty
Run Code Online (Sandbox Code Playgroud)
我列出了目录的内容并找到了一个名为 .fuse_hidden 的文件,后跟一个十六进制数 (000bd8c100000185)。
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000185
Run Code Online (Sandbox Code Playgroud)
我试图删除 .fuse_hidden 文件,但立即创建了一个新文件(注意十六进制数的变化)。
# rm dir-name/.fuse_hidden000bd8c100000185
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000186
Run Code Online (Sandbox Code Playgroud)
我也尝试使用 Midnight Commander 删除文件但没有成功。
到目前为止,我发现的其他解决方案涉及 GUI,而我只有控制台。
任何建议表示赞赏。
我使用 SSHFS 在远程服务器上挂载一个目录。客户端和服务器上都有一个用户 xxx。两个盒子上的 UID 和 GID 是相同的。
我用
sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \
-o cache_timeout=600 -o ServerAliveInterval=15 \
xxx@yyy.yyy.yyy.yyy:/mnt/content /home/xxx/path_to/content
Run Code Online (Sandbox Code Playgroud)
将目录挂载到远程服务器上。当我在客户端上以 xxx 身份登录时,我没有任何问题。我可以 cd 进入 /home/xxx/path_to/content。
但是当我以另一个用户 zzz 登录客户端时
$ ls -l /home/xxx/path_to
Run Code Online (Sandbox Code Playgroud)
我明白了
d????????? ? ? ? ? ? content
Run Code Online (Sandbox Code Playgroud)
并在
$ ls -l /home/xxx/path_to/content
Run Code Online (Sandbox Code Playgroud)
我得到
ls: cannot access content: Permission denied
Run Code Online (Sandbox Code Playgroud)
当我做
$ ls -l /mnt
Run Code Online (Sandbox Code Playgroud)
在我得到的远程服务器上
drwxr-xr-x 6 xxx xxx 4096 2011-07-25 12:51 content
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?权限对我来说似乎是正确的。我错了吗?
我使用 SSHFS 在我的主机上挂载一个远程文件系统,我希望能够从 Docker 容器内部访问它。
我挂载远程文件系统
sshfs -o idmap=user,uid=$(id -u),gid=$(id -g) user@remote:directory /path/to/sshfs
而且,使用 Docker,根据我的使用情况,我收到以下错误--mount
:
docker run -it -v /path/to/sshfs:/target myimage bash
docker: Error response from daemon: error while creating mount source path '/path/to/sshfs': mkdir /path/to/sshfs: file exists.
Run Code Online (Sandbox Code Playgroud)
或-v
:
docker run -it --mount src=/path/to/sshfs,target=/target,type=bind myimage bash
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /path/to/sshfs.
See 'docker run --help'
Run Code Online (Sandbox Code Playgroud)
是否可以将 sshfs 挂载点挂载到容器中?
我是多用户服务器的系统管理员,我们系的学生在那里有 shell 帐户。我们的一位用户要求我们sshfs
在其上安装。我正在讨论sshfs
按照建议进行安装是否明智。
我主要担心的是 FUSE 安装是否会降低我们的服务器的可靠性。根据我的经验,当 NFS 服务器突然变得不可用时,服务器可能会发生不好的事情——平均负载激增,你可能无法干净地卸载它,以至于可能需要硬重启。如果安装了 FUSE 的服务器突然消失,清理烂摊子有多难?我应该考虑其他任何可能的灾难或陷阱吗?
至少对于 NFS,只有 root 可以挂载,我们可以选择挂载我们认为相当可靠的 NFS 服务器。
让我们假设我们的用户没有敌意,但可能会不小心做出愚蠢的事情。此外,我并不真正担心他们可能挂载的文件系统的内容,因为我们的用户已经拥有 shell 访问权限并且可以将他们想要的任何内容复制到他们的主目录中。
我们目前正在尝试为一些需要大量存储的工作负载演示谷歌云平台。我们正在尝试使用谷歌云存储,但在使用 gcsfuse 安装存储桶时遇到问题。我目前能够以 root 用户身份挂载我的测试桶(设置了 allow_other 选项),但非 root 用户只有读取权限。
我尝试过和检查过的事情:
gcloud config list | grep account
已获得此存储分区的所有者访问权限这是控制台输出 - Catting and touching animal.txt 以更新时间戳。
root@vm-00 cloud]# grep bucket /etc/fstab
test_bucket_00 /data/cloud/tb-00 gcsfuse rw,allow_other
[root@vm-00 cloud]# mount tb-00
Calling gcsfuse with arguments: -o rw -o allow_other test_bucket_00 /data/cloud/tb-00
Using mount point: /data/cloud/tb-00
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.
[root@vm-00 cloud]# mount …
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 9.10 x86 上使用s3fs 1.33。
我使用以下命令手动安装它:
sudo /usr/bin/s3fs mybucket /mnt/s3/mybucket -ouse_cache=/tmp
Run Code Online (Sandbox Code Playgroud)
如何在启动时强制安装?
我想我必须写点东西给/etc/fstab
. 但是什么?以及如何在不重新启动服务器的情况下对其进行测试?
我们遇到的情况是,站点办公室拥有几台 Rocky Linux 8 服务器,并定期从客户端接收大量数据。数据到达各种外部 USB 硬盘驱动器和偶尔的 USB 记忆棒。这些驱动器可以具有各种文件系统,但最常见的是 NTFS 和 exFAT。
RL8 本身支持 NTFS,但不支持 exFAT。我们使用了 rpmfusion 中的 fusion-exfat 包。(https://github.com/relan/exfat)。
我希望我的用户(没有也不应该拥有 root 访问权限)能够顺利地安装它们。之前,我们使用过 pmount,但 pmount 与 exFAT 配合不佳。我认为这是因为它是 FUSE,而不是因为它是 exFAT。
有没有一种好的、安全的方法来实现这一目标?
编辑:pmount 似乎是 mount 的一个非常薄的包装,并且权限是通过可执行文件上的 setuid 位获得的。所以基本上它是一组有限的安装命令,而 exfat 不是其中之一。这里有一些讨论:https://bugs.debian.org/cgi-bin/bugreport.cgi ?bug=755434,这里有一个建议的补丁:launchpadlibrarian.net/229524614/pmount.exfat.patch
我正在 gcloud 计算引擎上运行一个实例。我需要将 Google 存储桶(属于不同的项目)安装到我的实例中。该实例在 Debian Wheezy 上运行。我已经安装了gcc、fuse、gcsfuse。但是当我尝试安装桶时:
$ gcsfuse 存储桶名称 /mnt/存储桶名称
我收到错误: stderr:fusermount:未找到熔丝设备,请先尝试“modprobe熔丝”
尝试“modprobe熔断器”,我收到错误: -bash:modprobe:找不到命令
有谁知道可能是什么问题,或者有人遇到过同样的问题吗?任何想法、评论、帮助将不胜感激。提前致谢!
我正在使用 GlusterFS 3.7.9,目前在具有 4 个砖块的单个服务器上。
每块砖有 4TB,卷设置为仅分发。
该卷安装在辅助服务器上,我将其用于备份目的。
问题是,每隔几天辅助服务器就会看到该卷变小(12TB),并且当它尝试访问我得到的一些文件时transport endpoint not connected
。
就好像它不再看到 4 块砖中的一块,而卷所在的服务器可以毫无问题地看到它们。
我的IP在防火墙白名单中,gluster volume status
说一切都很好。
我应该检查什么?我找不到任何理由。