使用/ etc / fstab自动挂载多个s3fs存储桶

时间:2013-04-09 01:32:30

标签: amazon-s3 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

5 个答案:

答案 0 :(得分:4)

也许您的网络没有启动?

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

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

我正在运行Ubuntu 16.04,并且/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测试新条目并装入它们(然后进行重启测试)。

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

如果您希望以非root用户身份登录,请按以上方式查看UID,GID选项。如果使用保险丝选项allow_other,则在安装时权限为“0777”时,这不是绝对必要的。

答案 1 :(得分:1)

您可以尝试启动脚本。这就是我解决使用/ etc / fstab在启动时挂载s3fs的问题。

如何使启动脚本因发行版而异,但有关该主题的信息很多。

答案 2 :(得分:1)

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

在/ etc / fstab

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

.passwd-s3fs位于root的homedir中,其中包含适当的内容

答案 3 :(得分:0)

请注意autofs以root身份启动。然后,凭证文件.passwd-s3fs必须进入根目录,而不是进入用户文件夹。

答案 4 :(得分:0)

这可能不是最干净的方法,但是我遇到了同样的问题,并通过以下方式解决了该问题:

  

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空间,但它们的工作方式与带有s3fs的S3存储桶完全一样)

  

2。重新引导您运行进入安装脚本的方式

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

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

(是的,您可以预定义/ bin / sh路径和其他内容,但是那天我感到很懒)

我知道这是解决方法,而不是解决方案,但是我很快就对fstab感到沮丧,因此我回到了老旧的cron那里,我感到很舒服:)