在启动时使用 s3fs 自动挂载存储桶

Bal*_*our 4 fuse boot fstab s3fs ubuntu-14.04

我使用 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
Run Code Online (Sandbox Code Playgroud)

所以,我尝试了另一种方式,评论了该行,然后将我的命令行放在/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
Run Code Online (Sandbox Code Playgroud)

……也没用。

我最终放置了一个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
Run Code Online (Sandbox Code Playgroud)

有什么我错过了吗?
我使用的是 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,但是......没有时间去冒险,现在:)

khc*_*khc 5

您想将 _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

  • 它实际上在 s3fs 的自述文件中 https://github.com/s3fs-fuse/s3fs-fuse (2认同)