2011-01-08 66 views
3

我一直在Ubuntu 10.04上试验s3ql,使用它来挂载Amazon S3存储桶。不过,我真的很喜欢它自动安装它们。有谁知道这是怎么做到的吗?如何创建s3ql文件系统并在启动时自动挂载它?


解决方案:

感谢帮助从s3ql Nikratio我终于能够自动安装S3桶在系统引导时。你一定会想看看manual,但这里有关于如何做到这一点的基础知识!

第一步是创建一个authinfo文件。这个文件应该被放置在将要使用它的用户的主目录内的.s3ql目录中。 authinfo文件包含登录信息,允许s3ql无需提示即可挂载存储桶。下面是你的authinfo文件应该是什么样子的例子。第一行包含您的亚马逊安全证书。第二个包含您的存储桶的位置和密码。如果需要,您可以向该文件添加多个bucket-line,但在本例中仅使用了一个。此时,存储桶密码可以是任何东西。

backend s3 machine any login ASDFGHJKL password ZXCVBNM 
storage-url s3://mybucket password mypassword 

存储桶名称必须是唯一的。没有两个用户可以具有相同的存储桶名称,因此,登录到Amazon Web Services并尝试不同的名称是一个好主意,直​​到找到可用的名称。一旦你找到了,你需要删除它,因为s3ql会在创建s3ql文件系统时重新创建它。如果存储桶已经存在,您将收到错误消息。

要创建文件系统,使用命令:

mkfs.s3ql s3://mybucket 

它会提示您输入加密密码。这应该与authinfo文件中的存储桶密码相同。

现在已经创建了文件系统,你可以使用以下命令将其安装:

mount.s3ql s3://mybucket /mnt/s3/bucket 

当然,你的水桶名和安装点会有所不同。

现在,如果我们想在引导时自动挂载这个桶,我们需要在/ etc/init中添加一个upstart脚本。幸运的是,s3ql与一个s3ql.conf打包在一起。

我在mount.s3ql命令中添加了“--allow-other”以允许root以外的用户访问装入的存储桶。

# 
# This file can be placed in /etc/init. It defines an upstart job that 
# takes care of mounting and unmounting an S3QL file system. 
# 
description "S3QL Backup File System" 
author  "Nikolaus Rath <[email protected]>" 

start on (filesystem and net-device-up IFACE=eth0) 
stop on runlevel [016] 

env BUCKET="s3://mybucket" 
env MOUNTPOINT="/mnt/s3/bucket" 

expect stop 

script 
    # Redirect stdout and stderr into the system log 
    DIR=$(mktemp -d) 
    mkfifo "$DIR/LOG_FIFO" 
    logger -t s3ql -p local0.info < "$DIR/LOG_FIFO" & 
    exec > "$DIR/LOG_FIFO" 
    exec 2>&1 
    rm -rf "$DIR" 

    # Check and mount file system 
    fsck.s3ql --batch "$BUCKET" 
    exec mount.s3ql --upstart --allow-other "$BUCKET" "$MOUNTPOINT" 
end script 

pre-stop script 
    umount.s3ql "$MOUNTPOINT" 
end script 

添加此脚本后,理论上应该可以重新启动并让您的存储桶自动挂载,但这是我遇到了麻烦。矿没有被安装。

我的问题是由于upstart以root用户身份运行脚本,但我以另一个用户的身份创建了文件系统。一旦我从用户的主目录复制.s3ql目录,我已经登录到/ root,问题就解决了。

我希望这可以帮助别人。尽管我没有长时间使用我的S3吊桶,但我对最初的测试已经结束了很深的印象。

此外,这个答案是在找到解决方案后大概一周写的。我想我已经涵盖了所有内容,但是如果您发现我错过了一个步骤,请告诉我,我会添加它。如果您打算使用s3ql,您还需要阅读manual,它真的值得一读。

+0

相同的问题和答案堆栈交换的两个不同的论坛? https://askubuntu.com/questions/20574 我不认为这是一个好主意。 – 2017-09-21 07:01:01

回答

1

在Nikratio的帮助下,我终于可以在启动时自动挂载我的S3存储桶。我已经用解决方案更新了我的问题。

相关问题