我使用 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
答案3
s3fs#我的.存储桶.名称
s3fs 后面的那个井号……实际上阻止了我的 EC2 启动。我对服务器不是特别熟悉,可能不应该被允许靠近它们,但我想检查一下该语法对于 Ubuntu 20.04 是否真的正确?
是的 - 抱歉,这个问题已经晚了 5 年了...现在正尝试在 AWS 重启时安装 S3...