通过/etc/fstab自动挂载多个s3fs桶



在s3fs指令wiki中,我们被告知可以通过在/etc/fstab

中输入以下行来自动挂载s3fs桶
s3fs#mybucket /mnt/mybucket fuse    allow_other,use_cache=/tmp,url=https://s3.amazonaws.com 0 0

这对于1个桶工作得很好,但是当我尝试通过2行将多个桶挂载到1个EC2实例时:

s3fs#mybucket /mnt/mybucket fuse    allow_other,use_cache=/tmp 0 0
s3fs#mybucket2 /mnt/mybucket2 fuse    allow_other,use_cache=/tmp 0 0

只有第二行有效我尝试复制s3fs到s3fs2和到:

s3fs#mybucket /mnt/mybucket fuse    allow_other,use_cache=/tmp 0 0
s3fs2#mybucket2 /mnt/mybucket2 fuse    allow_other,use_cache=/tmp 0 0

,但这仍然不起作用。只有第二个文件被挂载:

如何在/etc/fstab上通过s3fs自动挂载多个s3桶无需手动使用:

s3fs mybucket /mn/mybucket2-ouse_cache=/tmp

也许你的网络没有连接?

最小入口-只有一个选项(_netdev =在网络'up'后挂载)

<bucket name> <mount point> fuse.s3fs _netdev, 0 0

我正在运行Ubuntu 16.04和多个mount在/etc/fstab中工作良好。

类似于我用于ftp图像上传的示例(使用额外的桶挂载点进行测试):

mybucket1.mydomain.org /mnt/mybucket1 fuse.s3fs _netdev,allow_other,passwd_file=/home/ftpuser/.passwd-aws-s3fs,default_acl=public-read,uid=1001,gid=65534   0 0
mybucket2.mydomain.org /mnt/mybucket2 fuse.s3fs _netdev,allow_other,passwd_file=/home/ftpuser/.passwd-aws-s3fs,default_acl=public-read,uid=1001,gid=65534   0 0

sudo mount -a来测试新条目并挂载它们(然后进行重新启动测试)。

如果您希望以非根用户的身份挂载,请按照上面的方法查看UID、GID选项。如果使用熔断器选项allow_other,这不是绝对必要的,因为在挂载时权限是'0777'。

警告:Updatedb (locate命令使用此)索引您的系统。您应该检查/etc/updatedb.conf中的PRUNEFSPRUNEPATHS是否覆盖了s3fs文件系统或s3fs挂载点。默认是"修剪"任何s3fs文件系统,但值得检查。否则,如果存储桶中有许多文件,不仅系统会变慢,而且您的AWS账单也会增加。更多信息请参见FAQ链接。

参考:
https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon
https://github.com/s3fs-fuse/s3fs-fuse/wiki/FAQ

这可能不是最干净的方法,但我有同样的问题,并解决了这个方法:

1。创建一个挂载脚本

很简单,只需在主目录中为需要挂载桶的用户创建一个.sh文件(在我的例子中是/home/webuser,我将脚本命名为mountme.sh)

文件的内容是每个桶挂载一行:

s3fs bucket_one /home/webuser/app/www/bucket_one -o url=https://nyc3.digitaloceanspaces.com -o allow_other
s3fs bucket_two /home/webuser/app/www/bucket_two -o url=https://nyc3.digitaloceanspaces.com -o allow_other

(是的,我正在使用DigitalOcean空间,但它们的工作方式完全像S3桶与s3fs)

2。在重新启动

时运行mount脚本

我为同一个webuser用户设置了一个cron:

@reboot /bin/sh /home/webuser/mountme.sh

(是的,您可以预先定义/bin/sh路径和诸如此类的东西,但那天我觉得很懒)

我知道这更多的是一个变通而不是一个解决方案,但我很快就对fstab感到沮丧,所以我又回到了好的旧cron,在那里我感觉更舒服:)

这就是我对Ubuntu 18.04和DigitalOcean Spaces所做的事情

在挂载

s3fs#<space>  /<dir> fuse _netdev,allow_other,use_cache=/tmp/cache,uid=<usr>,gid=<grp>,url=https://<url> 0 0

passd -s3fs在root的homedir目录下,里面有相应的内容

你可以尝试一个启动脚本。这就是我如何解决在启动时用/etc/fstab挂载s3fs的问题。

如何制作启动脚本因发行版而异,但是有很多关于这个主题的信息。

请注意autofs以根目录启动。然后,凭证文件.passwd-s3fs必须放在根目录中,而不是用户文件夹中。

相关内容

  • 没有找到相关文章

最新更新