在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
答案 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那里,我感到很舒服:)