启动时自动使用 s3fs 挂载 bucket

启动时自动使用 s3fs 挂载 bucket

我使用 Amazon S3 存储桶来传送我的服务器的某些内容。我能够成功挂载它并授予 Apache 对其的权限,但在重启时无法正确挂载它。

我更新了我的/etc/fstab使用此行,但我启动时什么也没有发生

s3fs#my-bucket-name /mnt/s3_bucket fuse allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0

因此,我尝试了另一种方法,注释掉上述行,然后将命令行放入/etc/init.d/local

#!/usr/bin/env bash
s3fs -o allow_other,uid=33,gid=33,umask=227,use_cache=/root/cache my-bucket-name /mnt/s3_bucket

... 也不起作用。

我最后放了一个cron,现在,它可以工作了,但是我觉得它非常不安全,我想知道为什么在启动时安装它不起作用。

//Crontab
*/10 * * * * ~/mountBucket.sh 1>/dev/null

//Mount script
#!/usr/bin/env bash
if [[ -d /mnt/s3_bucket/someBucketVirtualDirectoryName ]] ; then echo 'Bucket already mounted' ; else s3fs -o allow_other,uid=33,gid=33,umask=227,use_cache=/root/cache my-bucket-name /mnt/s3_bucket ; fi 1>/dev/null

我是否遗漏了什么?
我正在使用 Ubuntu 14.04.4 LTS,带有 Fuse 2.9.2


编辑:这是我必须自己解决的另一个不相关但重要的性能问题:

如果您的系统包含locate和/或mlocate(Ubuntu 14.04 包含),您可能需要添加例外,以便它不会扫描您的存储桶。我不得不修改我的/etc/updatedb.conf/etc/cron.daily/locate/mnt/my-bucket-name"PRUNEPATHS" fuse.s3fs"中增加“PRUNEFS 我想增加fuse.s3fs should be enough,但是……现在没有时间冒险 :)

答案1

您想将 _netdev 添加到您的 fstab:

s3fs#my-bucket-name /mnt/s3_bucket fuse _netdev,allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0

答案2

对我来说,使用 Amazon Linux 2 是可行的:

s3fs#my.bucket.name  /mount/path fuse _netdev,allow_other,iam_role,url=http://s3.amazonaws.com 0 0

从: https://github.com/s3fs-fuse/s3fs-fuse/issues/1138

答案3

s3fs#我的.存储桶.名称

s3fs 后面的那个井号……实际上阻止了我的 EC2 启动。我对服务器不是特别熟悉,可能不应该被允许靠近它们,但我想检查一下该语法对于 Ubuntu 20.04 是否真的正确?

是的 - 抱歉,这个问题已经晚了 5 年了...现在正尝试在 AWS 重启时安装 S3...

相关内容